简体   繁体   English

listView项单击事件未触发

[英]listView item click event not firing

I am having an issue with using a listview that when I click it nothing is happening. 我在使用listview时遇到问题,当我点击它时,没有任何事情发生。 I would like for it when I click the listview item to make a toast so I know it is being clicked. 当我点击listview项目来祝酒时我想要它,所以我知道它被点击了。 I have been trying/researching for a while and nothing. 我一直在尝试/研究一段时间而没有。 Would anybody mind taking a look to see if I am missing something I just am overlooking? 有人会介意看看我是否遗漏了一些我忽略的东西? Many thanks in advance! 提前谢谢了!

Here is my class: 这是我的班级:

public class MyCar extends Activity {

/**
 * Called when the activity is first created.
 */
public ListView mylistView;
String carInfo;
private ArrayAdapter<String> mylistAdapter;
ArrayList<String> arrayListCar = null;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_mycar);
    mylistView = (ListView) findViewById(R.id.listView);
    arrayListCar = new ArrayList<String>();
    //Just had to remove setting this adapter 2 times.  Took out line below to fix.
    mylistView.setAdapter(mylistAdapter);

    mylistView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position,
                                long id) {

            String item = ((TextView) view).getText().toString();

            Toast.makeText(getBaseContext(), item, Toast.LENGTH_LONG).show();

        }
    });
}

@Override
protected void onStart() {
    // TODO Auto-generated method stub
    super.onStart();
    carInfo = trySomethin();
    fillList();
}

public void fillList() {
    String make = "";
    String model = "";

    String[] pieces = carInfo.split("\"");
    make = pieces[3];
    model = pieces[7];

    ArrayList<String> carList = new ArrayList<String>();
    carList.add(make + " " + model);
    // Create ArrayAdapter using the car list.
    mylistAdapter = new ArrayAdapter<String>(MyCar.this, android.R.layout.simple_list_item_single_choice, carList);

    mylistView.setAdapter(mylistAdapter);
    mylistAdapter.notifyDataSetChanged();
}

} }

if you have any elements on listview item change this for them 如果listview项目上有任何元素,则为它们更改此项

android:focusable="false"                     

and if you are changing any elements visibility on runtime you have to handle focus programatically each time you change its visibility. 如果要更改运行时的任何元素可见性,则每次更改其可见性时都必须以编程方式处理焦点。

 Try this 


        listView.setOnItemClickListener(new OnItemClickListener() {
          @Override
          public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {

           // ListView Clicked item index
           int itemPosition     = position;

           // ListView Clicked item value
           String  itemValue    = (String) listView.getItemAtPosition(position);              
            // Show Alert 
            Toast.makeText(getApplicationContext(),
              "Position :"+itemPosition+"  ListItem : " +itemValue , Toast.LENGTH_LONG)
             .show();

          }
        }); 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM