gpt4 book ai didi

java - 具有多个控件的 Android ListView

转载 作者:行者123 更新时间:2023-11-30 09:38:08 25 4
gpt4 key购买 nike

我是安卓新手。我正在开发一个应用程序,其中有一个带有编辑和删除按钮的学生 ListView 。喜欢


 STUDENT LIST

[ABC]              [edit]              [delete]

[DEF]              [edit]              [delete]


使用此代码我可以在 <Textview> 中列出学生详细信息

public class DataBaseDemoActivity extends ListActivity {
/** Called when the activity is first created. */
SQLiteDatabase db;
Button btnInsert;
ArrayAdapter<String> students;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try{
db=openOrCreateDatabase("StudentDB",SQLiteDatabase.CREATE_IF_NECESSARY,null);

Cursor c=db.rawQuery("SELECT * FROM temp",null);
String[] students = new String[c.getCount()];

if (c.moveToFirst())
{
for (int i = 0; i < c.getCount(); i++)
{
students[i] = c.getString(0).toString()+" "+c.getString(1).toString();
c.moveToNext();
}
}
c.close();

setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, students));

ListView lv = getListView();
lv.setTextFilterEnabled(true);

lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
Toast.LENGTH_SHORT).show();
}
});


}catch(SQLException e)
{
}
}

我需要在 ListView 中存储记录的 ID,这样当我单击编辑或删除按钮时,我必须找出 ID 并在数据库上进行更改。我如何为两个字段设置值,比如 <TextView> [显示详细信息] 和 <EditText> [可见性:不可见 - 保存记录的 id]。我能够获得 <TextView> 的详细信息使用上面的代码。任何建议将不胜感激。

更新:

我正在使用的布局

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"
android:inputType="text"
android:onClick="showInfo"
/>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="230dip"
android:layout_height="wrap_content"
android:textSize="16sp"
android:id="@+id/studentInfo" >
</TextView>

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/action"
android:onClick="showInfo"
/>

</LinearLayout>

最佳答案

您可以在游标数据获取循环中获取 Id,使用任何 HashMap<id,String>为它收集并将 id 与数据(文本)一起存储。

根据您的要求,我建议您使用SimpleCursorAdapter而不是 ArrayAdapterListView .

因此,您可以使用列表轻松管理数据库记录,并在单击列表项时获取与特定记录的数据库相关的所有信息。

SimpleCursorAdapters and ListViews

Creating a custom CursorAdapter for Android

关于java - 具有多个控件的 Android ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10256497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com