listview onItemClick没有开火

时间:2013-03-10 20:28:52

标签: android listview

我在一个活动中有两个列表视图。我为每个设置了适配器。

这就是我所拥有的:

  lv.setAdapter(new ArrayAdapter<String>(this, 
            R.layout.custom_list_item_1, classesBradycardia));
            specialist.setAdapter(new ArrayAdapter<String>(this, 
                    R.layout.custom_list_item_1, specialistBradycardia));
            lv.setOnItemClickListener(this);

  public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
 // TODO Auto-generated method stub
    String selectedVal = //((TextView) v).getText().toString();
            lv.getItemAtPosition(position).toString();
    Log.d(selectedVal, "it's in " + selectedVal);
    final int result = 1;
    Bundle extras = new Bundle();
    switch(v.getId()){
    case R.id.lvSpecificTest:
        if(selectedVal.equals("Electrocardiogram")){
            Intent ecg = new Intent(this, ViewTest.class);
            extras.putString("viewtest", "Electrocardiogram");
            ecg.putExtras(extras);
            startActivityForResult(ecg, result);

我把Log放进去了。它显示了所选项目,但它没有进入下一个活动。我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

  

它只有textview = @android:id / text1

您的switch语句永远不会运行,因为ID不匹配...

switch(v.getId()){
case R.id.lvSpecificTest:  // Does not equal android.R.id.text1

添加

  

在我的主要布局中,我有2个列表视图,一个名为lvSpecificTest?

第二个参数v指的是行,即R.layout.custom_list_item_1,而不是ListView。第一个参数parent引用ListView。尝试:

switch(parent.getId()){
case R.id.lvSpecificTest: