我有一个ListActivity:
public class MedTime extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.no_elements_l);
String[] receipts = getResources().getStringArray(R.array.receipts_array);
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, receipts));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
Toast.LENGTH_SHORT).show();
}
我想:当用户点击列表项时,会启动名为“view”的新活动。另外,我需要对这个“视图”活动说明列表中哪个元素称为它。例如,如果我单击列表的第3个元素,则必须启动活动“视图”并显示text = string数组的第3个元素。 “view”的代码片段在这里(最后一行的i值必须由main活动发送到此,在我的例子中i = 3):
String[] receipts = getResources().getStringArray(R.array.receipts_array);
TextView tv = new TextView(this);
tv.setText(receipts[i]);
请告诉我如何1)当用户点击列表项时启动“查看”活动; 2)如何在这种情况下使用描述所选项目数的参数“view”启动?
答案 0 :(得分:0)
第三个参数“position”被点击项目位置从零开始。 你还需要什么?
答案 1 :(得分:0)
将项目位置添加到您的意图并开始新活动。
....
Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
Toast.LENGTH_SHORT).show();
Intent intent = new Intent(MedTime.this, NewActivity.class);
intent.putExtra("item", position);
startActivity(intent);
然后在您开始的活动中,从意图中提取onCreate()中的项目。
Intent intent = getIntent();
int id = intent.getIntExtra("item", -1);
if (id != -1) {
Log.d(TAG, "Received item: " + id);
}
在此之后我不能说你想做什么。一种可能性是从数组中获取字符串值。
String[] receipts = getResources().getStringArray(R.array.receipts_array);
String myItem = receipts[id]