내 프로그램에는 클릭하면 클릭 한 항목에 대한 정보를 표시하는 listview가 있어야합니다. 내 문제는 내가 클릭 한 항목의 이름을 새 활동을 시작하는 의도의 추가로 첨부했다는 것입니다. 표시해야하는 정보는 문자열 배열로 저장됩니다. Intent에서받은 문자열을 사용하여 문자열 배열을 찾아 자바로 가져와야합니다. 누군가 이걸로 나를 도울 수 있습니까? 감사합니다. .문자열에서 ID를 가진 리소스 가져 오기
MainActivity.java
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
public class MainActivity extends ActionBarActivity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listview = (ListView) findViewById(R.id.stationlist);
listview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> l, View v, int position, long id) {
String[] stations = getResources().getStringArray(R.array.stations);
String station_name = stations[position] + "_timings";
Intent intent = new Intent(MainActivity.this, Station_timings.class);
intent.putExtra("stationwithtime", station_name);
intent.putExtra("position", position);
startActivity(intent);
};
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
Station_timings.class
import android.content.res.Resources;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class Station_timings extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_station_timings);
String station_name = getIntent().getStringExtra("stationwithtime");
int position = getIntent().getIntExtra("position", 0);
TextView tv = (TextView) findViewById(R.id.textview);
Resources res = getResources();
String[] array = getResources().getStringArray(R.array.stations);
tv.setText(station_name);
int arrayid = res.getIdentifier(station_name, "array" , this.getPackageName());
String[] array2 = res.getStringArray(arrayid);
ListView listView = new ListView(this);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.activity_station_timings, array);
listView.setAdapter(adapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.station_timings, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
strings.xml의 당신의 예에서
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="stations" style="@style/names_of_stations">
<item name="Oceanside">Oceanside Station</item>
<item name="San Clemente">San Clemente Station</item>
<item name="San Juan Capistrano">San Juan Capistrano Station</item>
<item name="Irvine">Irvine Station</item>
<item name="Tustin">Tustin Station</item>
<item name="Santa Ana">Santa Ana Station</item>
<item name="Orange">Orange Station</item>
<item name="Anaheim">Anaheim Station</item>
<item name="Fullerton">Fullerton Station</item>
<item name="Buena Park">Buena Park Station</item>
<item name="Santa Fe Springs/Norwalk">Santa Fe Springs/Norwalk Station</item>
<item name="Commerce">Commerce Station</item>
<item name="Los Angeles">Los Angeles Union Station</item>
</string-array>
<string-array name ="oceanside">
<item name="1"> 5:45 </item>
<item name="2"> 6:30 </item>
</string-array>
<string-array name ="station_timings">
<item name="1"> wrong </item>
<item name="2"> wrong </item>
</string-array>
<string name="title_activity_station_timings">Station_timings</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
</resources>
사용중인 관련 코드를 게시하십시오 – silversunhunter