Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将McClickListener设置为ListView_Android_Listview - Fatal编程技术网

Android 将McClickListener设置为ListView

Android 将McClickListener设置为ListView,android,listview,Android,Listview,这是我的代码: ListView lv=getListView(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); new ProgressTask(MainActivity.this).execute

这是我的代码:

 ListView lv=getListView();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        new ProgressTask(MainActivity.this).execute();
        ImageView image = (ImageView)findViewById(R.id.image);
    !!!  lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                intent = new Intent(MainActivity.this,DetailInfo.class);
                intent.putExtra("title",jsonlist.get(position).get("title"));
                intent.putExtra("description",jsonlist.get(position).get("description"));
                intent.putExtra("description",jsonlist.get(position).get("description"));
                intent.putExtra("url",jsonlist.get(position).get("image"));
startActivity(intent);
ListView lv=getListView();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
新建ProgressTask(MainActivity.this).execute();
ImageView图像=(ImageView)findViewById(R.id.image);
!!!lv.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
意图=新意图(MainActivity.this,DetailInfo.class);
intent.putExtra(“title”,jsonlist.get(position.get(“title”));
intent.putExtra(“说明”,jsonlist.get(位置).get(“说明”);
intent.putExtra(“说明”,jsonlist.get(位置).get(“说明”);
intent.putExtra(“url”,jsonlist.get(position.get(“image”));
星触觉(意向);

问题是当我尝试将OnItemClickListener设置为lv时。我如何初始化lv?我有活动扩展了ListActivity。我找不到id的lv,因为ListView的id=android:id/list。我有适配器,它使用了setListAdapter(adapter)和all。我如何为lv设置侦听器?

首先在onCreate()中初始化您的lv,然后执行如下操作

  ListView lv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        new ProgressTask(MainActivity.this).execute();
        //Supposing your listview is from android package
        lv = (ListView)findViewById(android.R.id.list); 
        ImageView image = (ImageView)findViewById(R.id.image);
    !!!  lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                intent = new Intent(MainActivity.this,DetailInfo.class);
                intent.putExtra("title",jsonlist.get(position).get("title"));
                intent.putExtra("description",jsonlist.get(position).get("description"));
                intent.putExtra("description",jsonlist.get(position).get("description"));
                intent.putExtra("url",jsonlist.get(position).get("image"));
startActivity(intent);
ListView-lv;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
新建ProgressTask(MainActivity.this).execute();
//假设您的listview来自android软件包
lv=(ListView)findViewById(android.R.id.list);
ImageView图像=(ImageView)findViewById(R.id.image);
!!!lv.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
意图=新意图(MainActivity.this,DetailInfo.class);
intent.putExtra(“title”,jsonlist.get(position.get(“title”));
intent.putExtra(“说明”,jsonlist.get(位置).get(“说明”);
intent.putExtra(“说明”,jsonlist.get(位置).get(“说明”);
intent.putExtra(“url”,jsonlist.get(position.get(“image”));
星触觉(意向);

我建议使用RecyclerView,您可以在列表中的每个项目上设置OnclickListener。列表视图不再流行。 设置值时使用RecyclerView的示例:

 @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
        AnyViewHolder view = (AnyViewHolder ) holder;
            view.layout.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //Do something
                }

            });
        }
    }

为什么不在java代码中的Xml&findviewById中放置listView?发布Xml布局文件和方法:
getListView()