整理一下这几天在android上用的页面跳转:
现有A B 两个页面
A页面有一个listview 里面的item是从数据库中取出来的
B页面有一个添加的操作 会对数据库进行添加与A页面listview中绑定的数据
现在要求 A页面点击一个按钮 跳转到B页面
然后B页面进行添加的操作
操作成功 则返回A页面 并将A页面的listview刷新
实现方法:
A页面主要代码:
private ListView mylistview;
private ArrayList<String> list = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
fileService=new FileService(this);
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.chatt);
createList();
}
public void createList(){
/*
* 发送请求 参数为用户名 返回该用户所在的聊天室的名字
* 这里新开一个线程
* msg.what=1
*/
Map<String, String> map=fileService.readFile("private.txt");
map.put("username", map.get("username"));
HttpUtil.setUrl("http://1.sckandroid.sinaapp.com/Index/getchatname");
HttpUtil.setParams(map);
new Thread(new Runnable(){
@Override
public void run() {
String response = HttpUtil.post();
Message msg = new Message();
msg.what=1;
msg.obj=response.trim();
handler.sendMessage(msg);
}
}).start();
}
private Handler handler = new Handler(){
public void handleMessage(Message msg) {
switch(msg.what){
case 1:
String response = (String)msg.obj;
final String [] val = response.split(",");
mylistview = (ListView)findViewById(R.id.list);
for(int i = 0 ;i < val.length ; i++){
list.add(val[i]);
}
ArrayAdapter<String> myArrayAdapter = new ArrayAdapter<String>
(ChattActivity.this,android.R.layout.simple_list_item_1,list);
mylistview.setAdapter(myArrayAdapter);
mylistview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), val[position],Toast.LENGTH_SHORT).show();
}
});
}
}
};
public void addchat(View view){
/*
* 切换到添加聊天室的界面
*/
Intent intent = new Intent();
intent.setClass(ChattActivity.this,AddchatMainActivity.class);
startActivityForResult(intent,0);
}
public void onActivityResult(int requestCode, int resultCode, Intent data){
/*
* 这里是回调函数 当返回到聊天主界面时
* 都执行该回调函数
* 先把list清空
* 再重新对listview赋值 起到刷新的作用
* 页面跳转的方法:详见blog
*/
list.clear();
createList();
Toast.makeText(getApplicationContext(), "huidiao",Toast.LENGTH_SHORT).show();
}
重要的点:
1.跳转页面代码:
Intent intent = new Intent();
intent.setClass(ChattActivity.this,AddchatMainActivity.class);
startActivityForResult(intent,0);
注意这里用的是startActivityForResult
2.回调函数:
onActivityResult
这里面要做到一个刷新的效果 首先要把list清空 再重新向PHP网页请求数据库的内容
B页面主要代码:
Intent intent=new Intent(AddchatMainActivity.this,ChattActivity.class);
setResult(0,intent);
finish();
这部分自己体会~~~