繁体   English   中英

我的ListView无法正常工作。 我在这里错过了一些东西

[英]My ListView wouldn't work. I'm missing out something here

我强制执行了这一行:lv1.setOnItemClickListener(((OnItemClickListener)this); 因为它会形成一条红色的波浪线。 我是否正确使用onItemClick函数?

 public class MainActivity extends Activity {

private ListView lv1;
private String lv_arr[] = {
        "Android",
        "iPhone",
        "Blackberry",
        "AndroidPeople"
};


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    lv1 = (ListView) findViewById(R.id.ListView01);
    lv1.setOnItemClickListener((OnItemClickListener) this);
    //by using setAdapter method in ListView, we can add string array in list

    lv1.setAdapter(new ArrayAdapter<String>(
            this, android.R.layout.simple_list_item_1, lv_arr));

}

public void onItemClick(AdapterView arg0, View v, int position, long arg3){

    Toast.makeText(this, "You clicked" + lv_arr[position],       Toast.LENGTH_LONG).show();

}



 }

您的MainActivity没有实现OnItemClickListener ,这就是为什么它为您提供了“红色波浪线”。

您应该将类​​声明更改为:

public class MainActivity extends Activity implements OnItemClickListener {

这将意味着在将MainActivity设置为ListView时, OnItemClickListener将其转换为OnItemClickListener

您需要实现OnItemClickListener或只是可以编写

 lv1.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            Toast.makeText(this, "You clicked" + lv_arr[position],       Toast.LENGTH_LONG).show();
        }
    });

如果你想拥有的每一行与它的定制onClickListener()你需要扩展一个ArrayAdapter (例如)和实施onClickListener()为内各行getView()方法。

@Override
public View getView(final int position, View convertView, final ViewGroup parent) {
  // Speaking very vaguely, convertView represents each of your rows
  if (convertView == null) {
    ...
    convertView.setOnClickListener(new View.OnClickListener() {
      public void onClick(final View v) {
        // Whetever you need
        ...
      }
    }
  });
  else
    ...

  // Rest of your implementation
  ...

  return convertView; 
}

暂无
暂无

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

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