Android 如何将简单列表项更改为修改列表项?
我想显示数据库中的3个字段,但我不知道Android 如何将简单列表项更改为修改列表项?,android,listview,android-studio,Android,Listview,Android Studio,我想显示数据库中的3个字段,但我不知道simple\u list\u item\u 1 SQLiteDatabase db = dbcenter.getReadableDatabase(); cursor = db.rawQuery("SELECT * FROM TABLE", null); daftar = new String[cursor.getCount()]; cursor.moveToFirst(); for (int cc = 0; cc <
simple\u list\u item\u 1
SQLiteDatabase db = dbcenter.getReadableDatabase();
cursor = db.rawQuery("SELECT * FROM TABLE", null);
daftar = new String[cursor.getCount()];
cursor.moveToFirst();
for (int cc = 0; cc < cursor.getCount(); cc++) {
cursor.moveToPosition(cc);
daftar[cc] = cursor.getString(1).toString();
}
ListView01 = (ListView) view.findViewById(R.id.listView1);
ListView01.setAdapter(new ArrayAdapter(getActivity(), android.R.layout.simple_list_item_1, daftar));
ListView01.setSelected(true);
SQLiteDatabase db=dbcenter.getReadableDatabase();
cursor=db.rawQuery(“从表中选择*”,null);
daftar=新字符串[cursor.getCount()];
cursor.moveToFirst();
对于(int cc=0;cc
在上面的视图中,代码显示表中的数据,但只显示一个字段
你能给我举个例子吗,当你调用
新的ArrayAdapter(…,android.R.layout.simple\u list\u item\u 1,…)
时,用3替换为修改后的列表\u item
,你告诉系统使用android.R.layout.simple\u list\u item\u 1
来处理你的数据。如果这不起作用,实际上只有一个选择:自己处理膨胀和填充视图。您可以通过创建ArrayAdapter
的自定义子类并重写onCreateView()
来实现这一点
正式文件:
您还可以自定义集合中数据对象使用的视图类型。要自定义数据对象使用的视图类型,请覆盖getView(int、view、ViewGroup)
并膨胀视图资源
创建一个名为custom_layout的xml,如
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textSize="16sp" >
</TextView>
使用like R.layout.custom\u layout而不是android.R.layout.simple\u list\u item\u 1您可以创建带有3个文本视图的自定义列表视图
现在自定义列表视图布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/name"
android:text="@string/name"
android:textSize="20sp"
android:layout_marginTop="19dp"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@+id/price"
android:layout_toStartOf="@+id/price"
android:layout_marginRight="30dp"
android:layout_marginEnd="30dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/price"
android:text="Price"
android:textSize="20sp"
android:layout_alignBaseline="@+id/name"
android:layout_alignBottom="@+id/name"
android:layout_centerHorizontal="true"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/stock"
android:text="Stock"
android:textSize="20sp"
android:layout_alignBaseline="@+id/price"
android:layout_alignBottom="@+id/price"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_marginRight="81dp"
android:layout_marginEnd="81dp"/>
</RelativeLayout>
在布局中创建列表视图,我在mainactivity布局中创建
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.pro.salman.customlistview.MainActivity">
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/list_item"/>
</RelativeLayout>
自定义列表视图类
public class CustomListView extends BaseAdapter {
private ArrayList<HashMap<String,String>> list;
private LayoutInflater mLayoutInflater;
private Context mContext;
public CustomListView(ArrayList<HashMap<String,String>> list,Context c) {
this.list = list;
this.mContext = c;
mLayoutInflater = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = mLayoutInflater.inflate(R.layout.custom_list_view,parent,false);
Holder h = new Holder();
// set id's
h.name = (TextView)(view.findViewById(R.id.name));
h.price = (TextView)(view.findViewById(R.id.price));
h.stock = (TextView)(view.findViewById(R.id.stock));
HashMap<String,String> hashMap = new HashMap<>();
hashMap = list.get(position);
h.name.setText(hashMap.get("nameKey"));
h.price.setText(hashMap.get("priceKey"));
h.stock.setText(hashMap.get("stockKey"));
return view;
}
private class Holder
{
TextView name;
TextView price;
TextView stock;
}
}
公共类CustomListView扩展了BaseAdapter{
私有数组列表;
私人停车场平面布置;
私有上下文;
公共CustomListView(ArrayList列表,上下文c){
this.list=列表;
this.mContext=c;
mLayoutInflater=(LayoutInflater)mContext.getSystemService(Context.LAYOUT\u INFLATER\u SERVICE);
}
@凌驾
public int getCount(){
返回list.size();
}
@凌驾
公共对象getItem(int位置){
返回位置;
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图=mLayoutInflater.FLATE(右布局.自定义列表视图,父视图,false);
保持架h=新保持架();
//设置id
h、 name=(TextView)(view.findviewbyd(R.id.name));
h、 price=(TextView)(view.findviewbyd(R.id.price));
h、 stock=(TextView)(view.findviewbyd(R.id.stock));
HashMap HashMap=新的HashMap();
hashMap=list.get(位置);
h、 name.setText(hashMap.get(“nameKey”);
h、 price.setText(hashMap.get(“priceKey”);
h、 stock.setText(hashMap.get(“stockKey”);
返回视图;
}
私人阶级持有者
{
文本视图名称;
文本视图价格;
TextView股票;
}
}
现在在活动课上
public class MainActivity extends AppCompatActivity {
private ListView mListView;
private ArrayList<HashMap<String,String>> mArrayList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mArrayList = new ArrayList<HashMap<String, String>>();
for(int i =0;i<20;i++)
{
HashMap<String,String> mHashMap = new HashMap<>();
mHashMap.put("nameKey","name "+String.valueOf(i));
mHashMap.put("priceKey","price "+String.valueOf(i));
mHashMap.put("stockKey","stock "+String.valueOf(i));
mArrayList.add(mHashMap);
}
mListView = (ListView)(findViewById(R.id.list_item));
CustomListView customListView = new CustomListView(mArrayList,this);
mListView.setAdapter(customListView);
}
}
public类MainActivity扩展了AppCompatActivity{
私有列表视图;
私人ArrayList结婚名单;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mArrayList=newarraylist();
对于(inti=0;我想要3,但是java的代码呢?你能给我一个例子吗?你能给我一个例子,用3和java代码将其替换为修改后的list\u项