【问题标题】:Launch one activity from another with an item value使用项目值从另一个活动启动一个活动
【发布时间】:2011-05-30 16:35:37
【问题描述】:

我有一个 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 = 字符串数组的第 3 个元素。 “view”的代码片段在这里(最后一行的 i 值必须由 main Activity 发送到此,在我的示例中 i=3):

String[] receipts = getResources().getStringArray(R.array.receipts_array);
    TextView tv = new TextView(this);
    tv.setText(receipts[i]);

请告诉我如何 1) 在用户单击列表项时启动“查看”活动; 2) 在这种情况下,如何使用描述所选项目数的参数启动“视图”?

【问题讨论】:

    标签: android android-activity arrays


    【解决方案1】:

    将项目位置添加到您的意图并开始新活动。

    ....
    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]
    

    【讨论】:

      【解决方案2】:

      第三个参数“position”是被点击的item位置从零开始。 你还需要什么??

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-29
        相关资源
        最近更新 更多