Android的ListView项点击 [英] android ListView item click
本文介绍了Android的ListView项点击的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
朋友你好我有项目点击听众问题上的ListView
Android中...我的code告诉我项目的正确位置,但不正确的名称我需要帮助...即时通讯在Android的新...
下面是我的code
公共无效的ListView(){ ListView控件=(ListView控件)findViewById(R.id.list_View);
最终的String [] [] =预测{{Food.NewDishInfo.DISH_CALORIE,Food.NewDishInfo.DISH_FAT}};
最后弦乐选择= Food.NewDishInfo.DISH_NAME +怎么样?
的String [] = selection_args新的String [] {dish_name};
最后ArrayAdapter<串GT;适配器=新ArrayAdapter<串GT;(这一点,R.layout.row_layout,selection_args);
listView.setAdapter(适配器);
listView.setOnItemClickListener(
新AdapterView.OnItemClickListener(){
@覆盖
公共无效onItemClick(适配器视图<>适配器视图,视图观点,INT I,长L){ 字符串selection_args =您选择了+
将String.valueOf(adapterView.getItemAtPosition(I)); Toast.makeText(DataListActivity.this,位置:+ I + selection_args,Toast.LENGTH_LONG).show(); }
});
}
这是我的名单适配器code .....
公共类ListDataAdapter扩展ArrayAdapter {
列表列表=新的ArrayList();
公共ListDataAdapter(上下文的背景下,资源INT){ 超(背景下,资源);
}
静态类LayoutHandler {
TextView的名称,热量,脂肪;
} @覆盖
公共无效添加(Object对象){
super.add(对象);
list.add(对象); } @覆盖
公众诠释的getCount(){
返回则为list.size();
} @覆盖
公共对象的getItem(INT位置){
返回list.get(位置);
} @覆盖
公共查看getView(INT位置,查看convertView,父母的ViewGroup){
查看排= convertView;
LayoutHandler layoutHandler;
如果(行== NULL)
{
LayoutInflater layoutInflater =(LayoutInflater)this.getContext()getSystemService(Context.LAYOUT_INFLATER_SERVICE)。
行= layoutInflater.inflate(R.layout.row_layout,父母,假);
layoutHandler =新LayoutHandler();
layoutHandler.name =(TextView中)row.findViewById(R.id.text_dish_name);
layoutHandler.calorie =(TextView中)row.findViewById(R.id.text_dish_calorie);
layoutHandler.fat =(TextView中)row.findViewById(R.id.text_dish_fat);
row.setTag(layoutHandler);
}
其他
{
layoutHandler =(LayoutHandler)row.getTag(); }
的DataProvider的dataProvider =(DataProvider的)this.getItem(位置);
layoutHandler.name.setText(dataProvider.getName());
layoutHandler.calorie.setText(dataProvider.getCalorie());
layoutHandler.fat.setText(dataProvider.getFat());
返回行;
}
}
datalistactivity code ...
进口android.database.Cursor;
进口android.database.sqlite.SQLiteDatabase;
进口android.support.v7.app.ActionBarActivity;
进口android.os.Bundle;
进口android.view.Menu;
进口android.view.MenuItem;
进口android.view.View;
进口android.widget.AdapterView;
进口android.widget.ArrayAdapter;
进口android.widget.ListView;
进口android.widget.Toast;进口的java.util.ArrayList;
进口的java.util.List;
公共类DataListActivity扩展ActionBarActivity {
ListView控件的ListView;
SQLiteDatabase sqLiteDatabase;
FoodDbHelper foodDbHelper;
光标光标;
ListDataAdapter listDataAdapter; @覆盖
保护无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.data_list_layout);
列表显示(); ListView控件=(ListView控件)findViewById(R.id.list_View);
listDataAdapter =新ListDataAdapter(getApplicationContext(),R.layout.row_layout);
listView.setAdapter(listDataAdapter);
foodDbHelper =新FoodDbHelper(getApplicationContext());
sqLiteDatabase = foodDbHelper.getReadableDatabase();
光标= foodDbHelper.getInformations(sqLiteDatabase);
如果(cursor.moveToFirst())
{
做{
字符串名称,热量,脂肪;
名称= cursor.getString(0);
热量= cursor.getString(1);
脂肪= cursor.getString(2);
DataProvider的dataProvider中=新的DataProvider(姓名,热量,脂肪);
listDataAdapter.add(dataProvider中); }而(cursor.moveToNext());
}
} 公共无效的ListView(){ 列表列表=新的ArrayList();
ArrayListt ArrayListt = NULL;
ListView控件=(ListView控件)findViewById(R.id.list_View);
最后弦乐ArrayListtt =新的String((的char [])NULL);
最后ArrayAdapter<串GT;适配器=新ArrayAdapter<串GT;(这一点,R.layout.row_layout,的Integer.parseInt(ArrayListtt));
listView.setAdapter(适配器);
listView.setOnItemClickListener(
新AdapterView.OnItemClickListener(){
@覆盖
公共无效onItemClick(适配器视图<>适配器视图,视图观点,INT I,长L){ 字符串ArrayListtt =您选择了+
将String.valueOf(adapterView.getItemAtPosition(I)); Toast.makeText(DataListActivity.this,位置:+ I + ArrayListtt,Toast.LENGTH_LONG).show(); } });
}}
解决方案
使用code
listView.setOnItemClickListener(新AdapterView.OnItemClickListener(){
@覆盖
公共无效onItemClick(适配器视图<>母公司,观景,
INT位置,长的id){ Toast.makeText(getApplicationContext(),
这道菜的名字是:+ dataprovider.getName(),Toast.LENGTH_SHORT).show();
可能会有所帮助。
Hello friends I have problem in item click listener on ListView
in android... My code tells me right position of item but not right name I need help... Im new in android...
Here is my code
public void listView(){
listView = (ListView)findViewById(R.id.list_View);
final String[][] projections = {{Food.NewDishInfo.DISH_CALORIE, Food.NewDishInfo.DISH_FAT}};
final String selection = Food.NewDishInfo.DISH_NAME+" LIKE ?";
String[] selection_args = new String[]{"dish_name"};
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.row_layout,selection_args);
listView.setAdapter(adapter);
listView.setOnItemClickListener(
new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
String selection_args = "You selected " +
String.valueOf(adapterView.getItemAtPosition(i));
Toast.makeText(DataListActivity.this,"position : " + i +selection_args, Toast.LENGTH_LONG).show();
}
});
}
This is my list adapter code.....
public class ListDataAdapter extends ArrayAdapter {
List list = new ArrayList();
public ListDataAdapter(Context context, int resource) {
super(context, resource);
}
static class LayoutHandler{
TextView name,calorie,fat;
}
@Override
public void add(Object object) {
super.add(object);
list.add(object);
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
LayoutHandler layoutHandler;
if (row == null)
{
LayoutInflater layoutInflater = (LayoutInflater)this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = layoutInflater.inflate(R.layout.row_layout,parent,false);
layoutHandler = new LayoutHandler();
layoutHandler.name = (TextView)row.findViewById(R.id.text_dish_name);
layoutHandler.calorie = (TextView)row.findViewById(R.id.text_dish_calorie);
layoutHandler.fat = (TextView)row.findViewById(R.id.text_dish_fat);
row.setTag(layoutHandler);
}
else
{
layoutHandler = (LayoutHandler) row.getTag();
}
DataProvider dataProvider = (DataProvider)this.getItem(position);
layoutHandler.name.setText(dataProvider.getName());
layoutHandler.calorie.setText(dataProvider.getCalorie());
layoutHandler.fat.setText(dataProvider.getFat());
return row;
}
}
datalistactivity code...
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class DataListActivity extends ActionBarActivity {
ListView listView;
SQLiteDatabase sqLiteDatabase;
FoodDbHelper foodDbHelper;
Cursor cursor;
ListDataAdapter listDataAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.data_list_layout);
listView();
listView = (ListView)findViewById(R.id.list_View);
listDataAdapter = new ListDataAdapter(getApplicationContext(),R.layout.row_layout);
listView.setAdapter(listDataAdapter);
foodDbHelper = new FoodDbHelper(getApplicationContext());
sqLiteDatabase = foodDbHelper.getReadableDatabase();
cursor = foodDbHelper.getInformations(sqLiteDatabase);
if (cursor.moveToFirst())
{
do {
String name,calorie,fat;
name = cursor.getString(0);
calorie = cursor.getString(1);
fat = cursor.getString(2);
DataProvider dataProvider = new DataProvider(name,calorie,fat);
listDataAdapter.add(dataProvider);
}while (cursor.moveToNext());
}
}
public void listView(){
List list = new ArrayList();
ArrayListt ArrayListt = null;
listView = (ListView)findViewById(R.id.list_View);
final String ArrayListtt = new String((char[]) null);
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.row_layout, Integer.parseInt(ArrayListtt));
listView.setAdapter(adapter);
listView.setOnItemClickListener(
new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
String ArrayListtt = "You selected " +
String.valueOf(adapterView.getItemAtPosition(i));
Toast.makeText(DataListActivity.this, "position : " + i + ArrayListtt, Toast.LENGTH_LONG).show();
}
});
}
}
解决方案
use this code
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Toast.makeText(getApplicationContext(),
"dish name is : " + dataprovider.getName(), Toast.LENGTH_SHORT).show();
may be helpful
这篇关于Android的ListView项点击的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文