【问题标题】:How do i use the OnItemClickListener to start a new intent based on which item is clicked?如何使用 OnItemClickListener 根据单击的项目启动新意图?
【发布时间】:2012-05-15 23:39:54
【问题描述】:

我希望能够使用 Intent 类开始一个新活动。我知道如何使用这些代码行来开始活动:

Intent myIntent = new Intent(v.getContext(), bylocationactivity.class);

startActivityForResult(myIntent, 0);

但是我如何指定哪个项目被点击了?那么当我点击“按位置”时,我可以启动 bylocationactivity.class 等等?

public class bonesactivity extends Activity 
{
    public void onCreate(Bundle savedInstanceState) 
    {
        ListView boneslist;
        String categorieslist[]={"Alphabetically","By Location","Specialty Tests"};
        super.onCreate(savedInstanceState);
        setContentView(R.layout.boneslayout);
        boneslist=(ListView)findViewById(R.id.boneslayout);
        boneslist.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , categorieslist));
        boneslist.setOnItemClickListener(new OnItemClickListener() 
        {
            public void onItemClick(AdapterView<?> parent, View view,int position, long id)
            {

            }
        });
    }      
}

【问题讨论】:

    标签: android string listview listviewitem onitemclicklistener


    【解决方案1】:
    @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Intent intent = null;
        switch(position) {
        case 1:
                intent = new Intent(getApplicationContext(), Activity2.class);
                startActivity(intent);
        break;
        case 2:
               intent = new Intent(getApplicationContext(), Activity3.class);
               startActivity(intent);
               break;
        default:
        }
        }
    

    });

    【讨论】:

    • 或许可以声明一次startActivity,让它更干净一些。
    【解决方案2】:

    演示多个按钮的单个 OnItemClick 侦听器的代码

    您可以将其用于您所说的物品!

    // 所有 6 个按钮的 On Click Listener

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        //int clickedButtonIs;
    
        if (v == button1)
        {
            // call intent 1;
        }
        else if (v == button2)
        {
            // call intent 2;
        }
        else if (v == button3)
        {
            // call intent 3;
        }
        else if (v == button4)
        {
            // call intent 4;
        }
        else if (v == button5)
        {
            // call intent 5;
        }
        else if (v == button6)
        {
            // call intent 6;
        }
    }
    

    【讨论】:

      【解决方案3】:

      您可以使用onItemClick 中的position 参数从categoriesList 数组中获取您想要的字符串。所以:

       String category = categoriesList.get(position);
      

      不过,可能必须让 categoriesList 成为成员变量。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-03
        • 1970-01-01
        • 2014-11-22
        • 2015-10-31
        • 1970-01-01
        相关资源
        最近更新 更多