可点击列表视图不工作
Clickable listView not working
我是 android 的新手,正在处理可点击的列表视图,我遇到的问题是,除了既不显示 toast 也不在终端显示输出之外,这一切都工作正常 window。
我的 listView 没有任何图像子项,它只是列表 form.Therefore 中的文本,没有 Focusability 问题。
这是我的代码
public class FavoritePage extends AppCompatActivity implements OnItemClickListener {
private ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_favorite_page);
DataBaseHandler db = new DataBaseHandler(this);
db.add_activity("");
lv = (ListView) findViewById(R.id.listView);
ArrayAdapter<String> arr2 = new ArrayAdapter<String>(getApplicationContext(), R.layout.simple_colum, db.getalllist());
lv.setAdapter(arr2);
db.del_activity("");
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String data = (String) parent.getItemAtPosition(position);
Toast.makeText(getApplicationContext(), "This is my Toast message!",
Toast.LENGTH_LONG).show();
System.out.println("***************************************************************" + data);
}}
知道为什么要这样做吗??
我想下面的代码可以帮到你:-
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
String data = (String) parent.getItemAtPosition(position);
Toast.makeText(getApplicationContext(), "This is my Toast message!",
Toast.LENGTH_LONG).show();
System.out.println("***************************************************************" + data);
});
您没有设置 onItemClickListener
。
在 onCreate
方法中的这一行 lv = (ListView) findViewById(R.id.listView);
之后添加这一行 lv.setOnItemClickListener(this)
。
此外,我建议在进行 Java 编程时使用驼峰命名法 style。
嗯,首先你得给listView设置监听器。类似于:lv.setOnItemClickListener(this)
.
将此添加到 onCreate()
中 findViewById()
代码下方。
除了在 activity 中实现 OnItemClickListener,您可以尝试下面的方法
public class FavoritePage extends AppCompatActivity {
private ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_favorite_page);
DataBaseHandler db = new DataBaseHandler(this);
db.add_activity("");
lv = (ListView) findViewById(R.id.listView);
ArrayAdapter<String> arr2 = new ArrayAdapter<String>(getApplicationContext(), R.layout.simple_colum, db.getalllist());
lv.setAdapter(arr2);
lv.setOnItemClickListener(clickListener);
db.del_activity("");
}
private AdapterView.OnItemClickListener clickListener = new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
}
};
}
我是 android 的新手,正在处理可点击的列表视图,我遇到的问题是,除了既不显示 toast 也不在终端显示输出之外,这一切都工作正常 window。 我的 listView 没有任何图像子项,它只是列表 form.Therefore 中的文本,没有 Focusability 问题。 这是我的代码
public class FavoritePage extends AppCompatActivity implements OnItemClickListener {
private ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_favorite_page);
DataBaseHandler db = new DataBaseHandler(this);
db.add_activity("");
lv = (ListView) findViewById(R.id.listView);
ArrayAdapter<String> arr2 = new ArrayAdapter<String>(getApplicationContext(), R.layout.simple_colum, db.getalllist());
lv.setAdapter(arr2);
db.del_activity("");
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String data = (String) parent.getItemAtPosition(position);
Toast.makeText(getApplicationContext(), "This is my Toast message!",
Toast.LENGTH_LONG).show();
System.out.println("***************************************************************" + data);
}}
知道为什么要这样做吗??
我想下面的代码可以帮到你:-
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
String data = (String) parent.getItemAtPosition(position);
Toast.makeText(getApplicationContext(), "This is my Toast message!",
Toast.LENGTH_LONG).show();
System.out.println("***************************************************************" + data);
});
您没有设置 onItemClickListener
。
在 onCreate
方法中的这一行 lv = (ListView) findViewById(R.id.listView);
之后添加这一行 lv.setOnItemClickListener(this)
。
此外,我建议在进行 Java 编程时使用驼峰命名法 style。
嗯,首先你得给listView设置监听器。类似于:lv.setOnItemClickListener(this)
.
将此添加到 onCreate()
中 findViewById()
代码下方。
除了在 activity 中实现 OnItemClickListener,您可以尝试下面的方法
public class FavoritePage extends AppCompatActivity {
private ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_favorite_page);
DataBaseHandler db = new DataBaseHandler(this);
db.add_activity("");
lv = (ListView) findViewById(R.id.listView);
ArrayAdapter<String> arr2 = new ArrayAdapter<String>(getApplicationContext(), R.layout.simple_colum, db.getalllist());
lv.setAdapter(arr2);
lv.setOnItemClickListener(clickListener);
db.del_activity("");
}
private AdapterView.OnItemClickListener clickListener = new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
}
};
}