使用项值启动另一个活动

时间:2011-05-30 16:35:38

标签: android android-activity arrays

我有一个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”启动?

2 个答案:

答案 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]