我正在使用列表视图活动将数据发送到“编辑数据活动”,这里有什么问题?

我正在从数据库中检索项目名称,项目描述和项目价格,当用户单击项目时,它将进入编辑活动,用户可以更新或删除数据,但是当我单击列表项目时,它会将我带回主活动

当用户单击视图数据时,单击列表视图后,它将显示列表视图,用户应移动到编辑数据活动,其中编辑数据活动将显示在编辑文本框中以进行更新或删除

我的代码在一个参数项目名称下运行良好,但是当我使用项目描述和项目价格时,会出现此错误

http://img.mukewang.com/6334060700018df402240218.jpg

http://img2.mukewang.com/6334060e0001d71d02230238.jpg

private static final String TAG = "ListDataActivity";


DatabaseHelper mDatabaseHelper;


private ListView mListView;


@Override

protected void onCreate(@Nullable Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_list_data);

    mListView = (ListView) findViewById(R.id.listView);

    mDatabaseHelper = new DatabaseHelper(this);


    populateListView();

}


private void populateListView() {

    Log.d(TAG, "populateListView: Displaying data in the ListView.");


    Cursor data = mDatabaseHelper.getData();

    ArrayList<String> listData = new ArrayList<>();

    while(data.moveToNext()){

        listData.add(data.getString(1));

    }

    ListAdapter adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, listData);

    mListView.setAdapter(adapter);

    mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override

        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {


            String name = adapterView.getItemAtPosition(i).toString();

            String des = adapterView.getItemAtPosition(i).toString();

            String pri = adapterView.getItemAtPosition(i).toString();


            Log.d(TAG, "onItemClick: You Clicked on " + name);


            Cursor data = mDatabaseHelper.getItemID(name, des, pri); //get the id associated with that name

            int itemID = -1;

            while(data.moveToNext()){

                itemID = data.getInt(0);

            }

        }

    });

}


慕姐8265434
浏览 80回答 1
1回答

慕勒3428872

您的“列表数据”数组列表是一个字符串类型数组列表。因此,您只能在其中添加字符串。您需要创建一个类,例如class Model {&nbsp; &nbsp; String name;&nbsp; &nbsp; String desc;&nbsp; &nbsp; int price;}&nbsp;然后创建模型的数组列表。ArrayList< Model> listData = new ArrayList<>();然后将该模型 ArrayList 传递给适配器,并在需要时也可以获取。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java