按下后退按钮时刷新列表视图-android
先生,如果我在android emulator中按下后退按钮,如何刷新我的listview?我在activityA上单击了一个项目,然后转到activityB中的编辑表单。保存更新后,如果我按下后退按钮,它应该会刷新列表 这是我的活动按下后退按钮时刷新列表视图-android,android,listview,Android,Listview,先生,如果我在android emulator中按下后退按钮,如何刷新我的listview?我在activityA上单击了一个项目,然后转到activityB中的编辑表单。保存更新后,如果我按下后退按钮,它应该会刷新列表 这是我的活动 public class CustomListView extends Activity { final Context context = this; public static String name; public static String number;
public class CustomListView extends Activity {
final Context context = this;
public static String name;
public static String number;
int REQUEST_CODE = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
GroupDb info = new GroupDb(this);
info.open();
ArrayList<Contact> searchResults = info.getView();
MyCustomBaseAdapter mcba = new MyCustomBaseAdapter(CustomListView.this, searchResults);
mcba.updateResults(searchResults);
final ListView lv = (ListView) findViewById(R.id.srListView);
lv.setAdapter(new MyCustomBaseAdapter(this, searchResults));
info.close();
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
// TODO Auto-generated method stub
Object o = lv.getItemAtPosition(position);
final Contact fullObject = (Contact)o;
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
alertDialogBuilder
.setMessage("Select action")
.setCancelable(false)
.setPositiveButton("Edit", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
Toast.makeText(getApplicationContext(), "Edit ", Toast.LENGTH_LONG).show();
name = fullObject.getName();
number = fullObject.getPhoneNumber();
Intent intent = new Intent();
intent.setClass(CustomListView.this, EditDetails.class);
startActivityForResult(intent, REQUEST_CODE);
}
})
.setNeutralButton("Delete", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
Toast.makeText(getApplicationContext(), "Delete ", Toast.LENGTH_LONG).show();
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// if this button is clicked, just close
// the dialog box and do nothing
dialog.cancel();
}
});
// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
alertDialog.show();
}
});
}
public void onResume()
{ // After a pause OR at startup
super.onResume();
//Refresh your stuff here
GroupDb info = new GroupDb(this);
info.open();
ArrayList<Contact> searchResults = info.getView();
MyCustomBaseAdapter mcba = new MyCustomBaseAdapter(CustomListView.this, searchResults);
mcba.updateResults(searchResults);
info.close();
}
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
if (requestCode == REQUEST_CODE) {
GroupDb info = new GroupDb(this);
info.open();
ArrayList<Contact> searchResults = info.getView();
MyCustomBaseAdapter mcba = new MyCustomBaseAdapter(CustomListView.this, searchResults);
mcba.updateResults(searchResults);
info.close();
}
}
//edit or delete list when clicked
public void deleteEditOption()
{
}//end deleteEditOption()
}
公共类CustomListView扩展活动{
最终上下文=此;
公共静态字符串名;
公共静态字符串号;
int请求_代码=0;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
GroupDb info=新的GroupDb(此);
info.open();
ArrayList searchResults=info.getView();
MyCustomBaseAdapter mcba=新的MyCustomBaseAdapter(CustomListView.this,searchResults);
更新结果(搜索结果);
最终ListView lv=(ListView)findViewById(R.id.srListView);
lv.setAdapter(新的MyCustomBaseAdapter(这是searchResults));
info.close();
lv.setOnItemClickListener(新的OnItemClickListener(){
公共视图单击(适配器视图a、视图v、内部位置、长id){
//TODO自动生成的方法存根
对象o=lv.getItemAtPosition(位置);
最终联系人fullObject=(联系人)o;
AlertDialog.Builder alertDialogBuilder=新建AlertDialog.Builder(上下文);
alertDialogBuilder
.setMessage(“选择操作”)
.setCancelable(错误)
.setPositiveButton(“编辑”,新建DialogInterface.OnClickListener()){
public void onClick(DialogInterface对话框,int-id){
Toast.makeText(getApplicationContext(),“编辑”,Toast.LENGTH_LONG.show();
name=fullObject.getName();
number=fullObject.getPhoneNumber();
意图=新意图();
setClass(CustomListView.this、EditDetails.class);
startActivityForResult(意图、请求代码);
}
})
.setNeutralButton(“删除”,新建DialogInterface.OnClickListener(){
public void onClick(DialogInterface对话框,int-id){
Toast.makeText(getApplicationContext(),“Delete”,Toast.LENGTH_LONG.show();
}
})
.setNegativeButton(“取消”,新建DialogInterface.OnClickListener()){
public void onClick(DialogInterface对话框,int-id){
//如果单击此按钮,只需关闭
//打开对话框,不执行任何操作
dialog.cancel();
}
});
//创建警报对话框
AlertDialog AlertDialog=alertDialogBuilder.create();
//表现出来
alertDialog.show();
}
});
}
恢复时公开作废()
{//暂停后或启动时
super.onResume();
//在这里刷新你的东西
GroupDb info=新的GroupDb(此);
info.open();
ArrayList searchResults=info.getView();
MyCustomBaseAdapter mcba=新的MyCustomBaseAdapter(CustomListView.this,searchResults);
更新结果(搜索结果);
info.close();
}
ActivityResult上受保护的void(int-requestCode、int-resultCode、Intent-Intent){
super.onActivityResult(请求代码、结果代码、意图);
if(requestCode==请求\代码){
GroupDb info=新的GroupDb(此);
info.open();
ArrayList searchResults=info.getView();
MyCustomBaseAdapter mcba=新的MyCustomBaseAdapter(CustomListView.this,searchResults);
更新结果(搜索结果);
info.close();
}
}
//单击时编辑或删除列表
公共void deleteEditOption()
{
}//end deleteEditOption()
}
这是我的活动
public class EditDetails extends Activity{
public String nameChanged;
public String numChanged;
public String name;
public String num;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.editdetails);
final EditText sqlName = (EditText)findViewById(R.id.editName);
final EditText sqlNumber = (EditText)findViewById(R.id.editNumber);
name = CustomListView.name;
num = CustomListView.number;
Button bUpdate = (Button)findViewById(R.id.editUpdate);
Button bView = (Button)findViewById(R.id.editView);
sqlName.setText(name);
sqlNumber.setText(num);
bUpdate.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
nameChanged = sqlName.getText().toString();
numChanged = sqlNumber.getText().toString();
GroupDb info = new GroupDb(EditDetails.this);
info.open();
long rowid = info.getRowId(name, num);
info.updateNameNumber(rowid+1, nameChanged, numChanged);
Toast.makeText(getApplicationContext(), rowid+" "+nameChanged+" "+numChanged, Toast.LENGTH_LONG).show();
ArrayList<Contact> searchResults = info.getView();
MyCustomBaseAdapter mcba = new MyCustomBaseAdapter(EditDetails.this, searchResults);
mcba.updateResults(searchResults);
Toast.makeText(getApplicationContext(), "Update Successful!", Toast.LENGTH_LONG).show();
info.close();
}
});
bView.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
Intent intent = new Intent();
intent.setClass(EditDetails.this, CustomListView.class);
startActivityForResult(intent, 0);
}
});
}
}
public类EditDetails扩展活动{
公共字符串名称已更改;
公共字符串numChanged;
公共字符串名称;
公共字符串num;
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.editdetails);
最终EditText sqlName=(EditText)findViewById(R.id.editName);
最终EditText sqlNumber=(EditText)findViewById(R.id.editNumber);
name=CustomListView.name;
num=CustomListView.number;
按钮bUpdate=(按钮)findViewById(R.id.editUpdate);
按钮bView=(按钮)findViewById(R.id.editView);
sqlName.setText(名称);
sqlNumber.setText(num);
setOnClickListener(新的OnClickListener(){
公共void onClick(视图arg0){
nameChanged=sqlName.getText().toString();
numChanged=sqlNumber.getText().toString();
GroupDb info=newgroupdb(EditDetails.this);
info.open();
long rowid=info.getRowId(名称,num);
info.updateNameNumber(rowid+1,nameChanged,numChanged);
Toast.makeText(getApplicationContext(),rowid+“”+nameChanged+“”+numChanged,Toast.LENGTH_LONG).show();
ArrayList searchResults=info.getView();
MyCustomBaseAdapter mcba=新的MyCustomBaseAdapter(EditDetails.this,searchResults);
更新结果(搜索结果);
Toast.makeText(getApplicationContext(),“更新成功!”,Toast.LENGTH_LONG.show();
info.close();
}
});
setOnClickListener(新的OnClickListener(){
公共void onClick(视图arg0){
意图=新意图();
setClass(EditDetails.this、CustomListView.class);
startActivityForResult(意向,0);
}
});
}
}
如果我在activityB中单击此bView按钮,它将更新listview。但按下后退按钮只会显示我以前未更新的listview。提前谢谢你的帮助
编辑
公共类MyCustomBaseAdapter扩展BaseAdapter{
私有静态ArrayList searchArrayList;
私人停车场;
公共MyCustomBaseAdapter(上下文、ArrayList结果)
public class MyCustomBaseAdapter extends BaseAdapter {
private static ArrayList<Contact> searchArrayList;
private LayoutInflater mInflater;
public MyCustomBaseAdapter(Context context, ArrayList<Contact> results) {
searchArrayList = results;
mInflater = LayoutInflater.from(context);
}
public void updateResults(ArrayList<Contact> results) {
searchArrayList = results;
//Triggers the list update
notifyDataSetChanged();
}
public int getCount() {
return searchArrayList.size();
}
public Object getItem(int position) {
return searchArrayList.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.custom_row_view, null);
holder = new ViewHolder();
holder.txtName = (TextView) convertView.findViewById(R.id.name);
holder.txtPhone = (TextView) convertView.findViewById(R.id.phone);
holder.status = (TextView) convertView.findViewById(R.id.status);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.txtName.setText(searchArrayList.get(position).getName());
holder.txtPhone.setText(searchArrayList.get(position).getPhoneNumber());
holder.status.setText(searchArrayList.get(position).getStatus());
return convertView;
}
static class ViewHolder {
TextView txtName;
TextView txtPhone;
TextView status;
}
MyCustomBaseAdapter mcba;
mcba = new MyCustomBaseAdapter(EditDetails.this, searchResults);
//mcba.updateResults(searchResults); this line isn't necessary here
public void onResume()
{ // After a pause OR at startup
super.onResume();
//Refresh your stuff here
GroupDb info = new GroupDb(this);
info.open();
mcba.updateResults(info.getView());
info.close();
}