在Android列表视图中,我们可以像在Web编程中一样为每一行设置一些值
<td id="123">Display</td>
如何在android.I中使用以下代码进行列表视图显示
ArrayList<String> filelist = new ArrayList<String>();
final ListView mainlist = (ListView)findViewById(R.id.list);
....
....
for (int l=0;l<lines.length;l++)
{
filelist.addAll( Arrays.asList(lines[l].toString())) ;
}
ArrayAdapter adp = new ArrayAdapter(this, android.R.layout.simple_list_item_1, filelist);
mainlist.setAdapter(adp);
mainlist.setTextFilterEnabled(true);
你可以试试这个:
CustomAdapter.class:
public class CustomAdapter extends ArrayAdapter<String>{
Context mContext;
String[] list;
LayoutInflater mInflater;
public static HashMap<Integer, Integer> hashkeys=new HashMap<Integer,Integer>();
public CustomAdapter(Context context, int textViewResourceId,
String[] objects) {
super(context, textViewResourceId, objects);
list=objects;
mInflater = LayoutInflater.from(context);
mContext=context;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
if(convertView==null)
{
convertView = mInflater.inflate(R.layout.custom_item, null);
holder = new ViewHolder();
holder.tv=(TextView)convertView.findViewById(R.id.textview);
convertView.setTag(holder);
}
else
{
holder=(ViewHolder)convertView.getTag();
}
int value=0;
switch(position){
case 0:
value=1;
break;
case 1:
value=2;
break;
case 3:
value=3;
break;
}
hashkeys.put(position,value);
return convertView;
}
static class ViewHolder
{
TextView tv;
}
}
现在在你的活动中,
CustomAdapter adp = new CustomAdapter(this, R.layout.custom_item, filelist);
mainlist.setAdapter(adp);
mainlist.setTextFilterEnabled(true);
mainlist.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View view, int position,
long id) {
String unique_value=CustomAdapter.hashkeys.get(position);//get value on click of item
}
});
private void setList(int viewId, String[] title_list) {
ListView listView = (ListView) findViewById(viewId);
ArrayAdapter<String> titlesAdaptor = new ArrayAdapter<String>(
getApplicationContext(), android.R.layout.simple_list_item_1,
title_list);
listView.setAdapter(titlesAdaptor);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View view,
int position, long id) {
listOnClicked(view, position, id);
}
});
}// end of setList
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
//handle click events here
}