[英]Insertion-sort in java with helper method don't work. Anyone see what I'm missing?
[英]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.