您的位置:首页 > 其它

我自己经过测试的 包含 button 的 listView

2011-06-25 22:16 375 查看
package gyf.android;
import gyf.function.MyAdapter1;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import android.app.Activity;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
import android.widget.Toast;
public class g1 extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listview);
ListView listView=(ListView)findViewById(android.R.id.list);

ArrayList<Map<String, Object>> dataList=new ArrayList<Map<String,Object>>();
for (int i = 0; i <6; i++) {
Map<String, Object> map=new HashMap<String, Object>();
map.put("username", "gyf");
//map.put("changeButton", "change");
dataList.add(map);

}

// 生成适配器的Item和动态数组对应的元素
MyAdapter1 listItemAdapter = new MyAdapter1(
this,
dataList,//数据源
R.layout.main,//ListItem的XML实现
//动态数组与ImageItem对应的子项
new String[] {"username"},
//ImageItem的XML文件里面的一个ImageView,两个TextView ID
new int[] {R.id.g1_textView1}
);

listView.setAdapter(listItemAdapter);

}
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
l.getItemAtPosition(position);
Toast.makeText(g1.this, "hello", Toast.LENGTH_SHORT).show();
}

}


定义的适配器类

package gyf.function;
import gyf.android.R;
import gyf.android.g1;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class MyAdapter1 extends BaseAdapter {

private class buttonViewHolder {
TextView appName;
Button buttonClose;
}

ArrayList<Map<String, Object>> alist;
LayoutInflater lInflater;
buttonViewHolder bHolder;
Context context;
String[] strings;
int[] i;

public MyAdapter1(Context c,ArrayList<Map<String, Object>> AlList,int resouse,String[] from,int[] to){
context=c;
alist=AlList;
lInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
strings=new String[from.length];
i=new int[to.length];
System.arraycopy(from, 0, strings, 0, from.length);
System.arraycopy(to, 0, i, 0, to.length);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return alist.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return alist.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
if (convertView != null) {
bHolder = (buttonViewHolder) convertView.getTag();
} else {
convertView = lInflater.inflate(R.layout.main, null);
bHolder = new buttonViewHolder();

bHolder.appName = (TextView)convertView.findViewById(i[0]);
bHolder.buttonClose = (Button)convertView.findViewById(R.id.g1_button1);

convertView.setTag(bHolder);
}

HashMap<String, Object> appInfo = (HashMap<String, Object>)alist.get(position);
if (appInfo != null) {
String aname = (String) appInfo.get(strings[0]);
// String buString = (String)appInfo.get(strings[1]);

bHolder.appName.setText(aname);
// bHolder.buttonClose.setText(buString);

bHolder.buttonClose.setOnClickListener(new lvButtonListener(position));
}
return convertView;
}
class lvButtonListener implements OnClickListener {
private int position;
lvButtonListener(int pos) {
position = pos;
}

@Override
public void onClick(View v) {
int vid=v.getId();
if (vid == bHolder.buttonClose.getId()){
//alist.remove(position);
alist.get(position).put(strings[0], "111");
MyAdapter1.this.notifyDataSetChanged();
//bHolder.appName.setText("lyx");
Toast.makeText(context, "world"+position, Toast.LENGTH_SHORT).show();
}

}
}

}


界面布局:

<?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">
<ListView android:id="@id/android:list" android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>


item布局:

<?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"
android:descendantFocusability="blocksDescendants">
<TextView android:layout_height="wrap_content" android:layout_weight="1" android:layout_width="wrap_content" android:text="@string/g1" android:gravity="center" android:id="@+id/g1_textView1"></TextView>
<Button android:layout_height="wrap_content" android:text="Button" android:layout_width="wrap_content" android:layout_weight="1" android:focusable="false" android:id="@+id/g1_button1"></Button>
</LinearLayout>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: