朋友你好我有项目点击听众问题上的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
上一篇:从我的WPF web浏览器检查的元素,使用&QUOT;检查元素(S)QUOT;(IE,Chrome浏览器,火狐)得到的CSS路径(&QUOT;复制CSS路径&QUOT;)我的、路径、元素、浏览器