android - ListView onItemClick 不工作

标签 android listactivity onitemclicklistener

我有一个包含字符串数组的 ListAdapter。

当我点击列表中的任何项目时,我希望应用程序将当前点击的项目传递给另一个 Activity 并转到另一个 Activity 。

我正在尝试设置 onItemClickListener 但没有成功。

Activity :

package com.nituach.nituach;

import java.util.List;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;

public class NituachActivity extends Activity implements OnClickListener, 
OnItemClickListener    {

Button addNewBuisness;
ListView blv;
public static int bname;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    final String TAG = NituachActivity.class.getSimpleName();
    addNewBuisness = (Button) findViewById(R.id.btnAddNewBuisness);
    addNewBuisness.setOnClickListener(NituachActivity.this);
    blv = (ListView) findViewById(R.id.listView1);

    Log.d(TAG, "All Variables was created");

    DataBase dbc = new DataBase(NituachActivity.this);
    dbc.open();

    List<String> cs = dbc.getData();

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

    dbc.close();
    blv.setOnItemClickListener(NituachActivity.this);


}

public void onClick(View v) {
    if (v == addNewBuisness) {
        Intent addnbIntent = new Intent(NituachActivity.this,
                AddNewBuisness.class);
        NituachActivity.this.startActivity(addnbIntent);    
    }           

}

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {


}

}

最佳答案

您的 onItemClick() 方法是空的。

ListView 使用 OnItemClickListener ,它导出 onItemClick() 方法。您的 Activity 实现了“正常”OnClickListener (公开了 onClick() 方法)和 OnItemClickListener。您不需要 OnClickListener,只需要前一个。

当场添加匿名实现通常更具可读性:

blv.setOnItemClickListener(new OnItemClickListener(){
  @Override
  public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
    // Your Code
  }
});

关于android - ListView onItemClick 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11819124/

相关文章:

android - 如何在 Android 中创建离线第一个 RecyclerView?以及如何只更新最新的数据?

android - 如何导入javax.naming?

android - 确保在 android listview 上可见?

android - ListActivity 与 ListView

android - ListView 的 onItemClickListener 不适用于 RatingBar

android - GridView 中的 onItemClickListener 在显示 WebView 组件时不捕获点击事件

android - 获取 ListView 中所选按钮的位置

android - 无论如何要从 View 对象中删除 onTouchListener 吗?

android - 通过单击/触摸外部 : 删除 fragment

android - CursorAdapter 缓慢/不稳定的滚动