Android的ListView项点击Android、ListView

2023-09-07 13:21:25 作者:人丑多做怪

朋友你好我有项目点击听众问题上的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());        返回行;    }} 
android listview –

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