处理自定义 ArrayAdapter 和 ListView 的点击
Handle click for custom ArrayAdapter and ListView
我有一个包含一些字符串变量的 ArrayList,并且我有一个从 ArrayList 填充的自定义 ArrayAdapter。现在,当显示该列表并单击列表中的项目时,我希望程序做一些事情,但我不知道该怎么做。我看了几个例子,但我不明白把代码放在哪里。所以这是我的代码,你能告诉我做什么和在哪里做吗?
MainActivity.java
public class MainActivity extends AppCompatActivity {
private ArrayAdapter<String> listAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
updateList(listOfItems);
}
public void updateList(ArrayList<String> possibleWords){
listAdapter = new CustomListAdapter(this, R.layout.custom_list,possibleWords);
android.R.layout.simple_list_item_1, possibleWords);
final ListView listView = (ListView)findViewById(R.id.listview);
listView.setAdapter(listAdapter);
}
CustomListAdapter.java Class
public class CustomListAdapter extends ArrayAdapter {
private Context mContext;
private int id;
private List<String> items ;
public CustomListAdapter(Context context, int textViewResourceId , List<String> list )
{
super(context, textViewResourceId, list);
mContext = context;
id = textViewResourceId;
items = list ;
}
@Override
public View getView(int position, View v, ViewGroup parent)
{
View mView = v ;
if(mView == null){
LayoutInflater vi = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mView = vi.inflate(id, null);
}
return mView;
}
}
这是输出结果的示例图片
所以当 "act" 或 "cat" 被点击时,我想做点什么,但我不知道如何处理点击以及将代码放在我想做的地方。
请像下面这样在适配器中添加点击监听器
mView.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// do something when the button is clicked
}
};
将下面的代码放在你的主activity
listview.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> adapter, View v, int position,
long arg3)
{
//do your work here
}
});
我有一个包含一些字符串变量的 ArrayList,并且我有一个从 ArrayList 填充的自定义 ArrayAdapter。现在,当显示该列表并单击列表中的项目时,我希望程序做一些事情,但我不知道该怎么做。我看了几个例子,但我不明白把代码放在哪里。所以这是我的代码,你能告诉我做什么和在哪里做吗?
MainActivity.java
public class MainActivity extends AppCompatActivity {
private ArrayAdapter<String> listAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
updateList(listOfItems);
}
public void updateList(ArrayList<String> possibleWords){
listAdapter = new CustomListAdapter(this, R.layout.custom_list,possibleWords);
android.R.layout.simple_list_item_1, possibleWords);
final ListView listView = (ListView)findViewById(R.id.listview);
listView.setAdapter(listAdapter);
}
CustomListAdapter.java Class
public class CustomListAdapter extends ArrayAdapter {
private Context mContext;
private int id;
private List<String> items ;
public CustomListAdapter(Context context, int textViewResourceId , List<String> list )
{
super(context, textViewResourceId, list);
mContext = context;
id = textViewResourceId;
items = list ;
}
@Override
public View getView(int position, View v, ViewGroup parent)
{
View mView = v ;
if(mView == null){
LayoutInflater vi = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mView = vi.inflate(id, null);
}
return mView;
}
}
这是输出结果的示例图片
所以当 "act" 或 "cat" 被点击时,我想做点什么,但我不知道如何处理点击以及将代码放在我想做的地方。
请像下面这样在适配器中添加点击监听器
mView.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// do something when the button is clicked
}
};
将下面的代码放在你的主activity
listview.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> adapter, View v, int position,
long arg3)
{
//do your work here
}
});