我有ListView
和3个字符串的自定义布局。
如何使用布局将项目添加到ListView
。
R.id.Tag1 takes value of String1;
R.id.Tag2 takes value of String2;
R.id.Tag3 takes value of String3;
而不是Item1 from ListView = the objects Tag1,Tag2,Tag3
。
我该怎么做?我知道如何使用Context
SimpleContextAdapter
使用{{1}},但我不知道只有字符串。
答案 0 :(得分:0)
像这样制作自定义适配器,
import java.util.ArrayList;
import java.util.HashMap;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
//Custom view for cityList
public class CustomItemsList extends BaseAdapter
{
private Activity activity;
private ArrayList<HashMap<String, String>> data;
private LayoutInflater inflater=null;
Context ctx;
public CustomItemsList(Activity a, ArrayList<HashMap<String, String>> d)
{
ctx = a.getBaseContext();
activity = a;
data=d;
inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public int getCount()
{
return data.size();
}
public Object getItem(int position)
{
return position;
}
public long getItemId(int position)
{
return position;
}
@SuppressLint("InflateParams")
public View getView(int position, View convertView, ViewGroup parent)
{
View vi=convertView;
if(convertView==null)
vi = inflater.inflate(R.layout.custom_items_list, null);
TextView title = (TextView)vi.findViewById(R.id.more_item);
TextView price = (TextView) vi.findViewById(R.id.itemPrice);
HashMap<String, String> category = new HashMap<String, String>();
category = data.get(position);
title.setText(category.get("itemName"));
price.setText(category.get("itemPrice"));
String itemId = category.get("itemId");
return vi;
}
}
这是布局custom_items_list。您可以相应地更改布局。我只是发布我当前的布局。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FFFFFF"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="@dimen/headerHeight1"
android:gravity="center"
android:padding="5dp" >
<TextView
android:id="@+id/more_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="@dimen/viewSpace1"
android:textColor="#000000"
android:textSize="@dimen/titlebar_textSize"
tools:ignore="HardcodedText" />
<TextView
android:textSize="@dimen/titlebar_textSize"
android:textColor="#000000"
android:id="@+id/itemPrice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true" />
</RelativeLayout>
<View
android:layout_height="0.5dip"
android:background="#000000"
android:layout_width="fill_parent"
android:layout_marginLeft="@dimen/viewSpace3"
android:layout_marginRight="@dimen/viewSpace3"/>
</LinearLayout>
在您的主要活动中,
ArrayList<HashMap<String, String>> detailss = new ArrayList<HashMap<String, String>>();
ItemList=(ListView) findViewById(R.id.listViewItems);
HashMap<String, String> map = new HashMap<String, String>();
map.put("itemId", "1");
map.put("itemName", "Name");
map.put("itemPrice", "120");
detailss.add(map);
adapter = new CustomItemsList(this, detailss);
ItemList.setAdapter(adapter);