解决方案 »
- 为什么模拟器可以收到日期改变广播,手机却收不到?
- Android如何关闭Socket?
- java handlar()方法有什么作用???
- 利用tcp/ip协议访问PC机(Android)
- CTS
- 隐藏scrollview的scrollbar
- android中context怎么注入到Activity中的
- android Camera 设置摄像质量
- 这是子线程在更新UI吗?????
- 运行helloworld程序的时候,提示 “Emulator PANIC: Could not open: AVD”
- 自定义gridview的问题
- Andriod Atom x86模拟器启动报错。网上的教程都旧了。跟新版完全不一样啊。怎么处理?
如果是单独放在一个xml文件里是可以正常显示的。不过我就是需要在按钮下有一个ListView并可以动态跟新ListView里面的内容。。这个可以怎么做?
import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;public class MainActivity extends Activity {
private MyAdapter adapter;
private int count = 0;//测试用变量
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); ListView listview = (ListView) findViewById(R.id.listview);
adapter = new MyAdapter(this);
listview.setAdapter(adapter);
Button button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
adapter.addUser(new User("user" + count, "addr" + count, "1311111111" + count));
count++;
}
});
} class MyAdapter extends BaseAdapter{
//存储数据的list
private ArrayList<User> mList = new ArrayList<User>();
private Context mContext;
public MyAdapter(Context context){
mContext = context;
}
//添加user
public void addUser(User user){
mList.add(user);
notifyDataSetChanged();//这句很重要,有了它,就可以刷新加入user后的ui了
}
//BaseAdapter的抽象方法需要实现
public int getCount() {
return mList.size();
}
//BaseAdapter的抽象方法需要实现
public Object getItem(int position) {
return mList.get(position);
}
//BaseAdapter的抽象方法需要实现
public long getItemId(int position) {
return position;
}
//BaseAdapter的抽象方法需要实现,显示的每条都是由这个方法得到的
public View getView(int position, View convertView, ViewGroup parent) {
User user = mList.get(position);
//可以用holder进行优化,具体可以网上百度一下
View view= LayoutInflater.from(mContext).inflate(R.layout.item, null);
TextView name = (TextView) view.findViewById(R.id.item_name);
TextView addr = (TextView) view.findViewById(R.id.item_addr);
TextView phone = (TextView) view.findViewById(R.id.item_phone);
name.setText(user.getName());
addr.setText(user.getAddr());
phone.setText(user.getPhone());
return view;
}
}
class User{
private String name;
private String addr;
private String phone;
public User(String name, String addr, String phone){
this.name = name;
this.addr = addr;
this.phone = phone;
}
public String getName() {
return name;
}
public String getAddr() {
return addr;
}
public String getPhone() {
return phone;
}
}
}