我想在不同的 Activity 中显示相同的对话框。我试图制作一个 BaseActivitiy
。 Activity 扩展了我的 BaseActivity。到目前为止一切正常,但现在我想更新在对话框关闭时显示对话框的 Activity。在我的例子中,更新意味着用来自 SQLite 数据库的数据填充 ListView 。
我还尝试检索类名以使用这些 Activity 的更新方法。但是不可能将更新方法更改为静态,因为非静态 SQL 方法...
你有什么想法吗?
Activity :
public class MyActivity extends Dialogs {
...
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
int idx = info.position;
switch (item.getItemId()) {
case CONTEXTMENU_ID:
showMyDialog(this,DIALOG_ID);
break;
}
return true;
}
public void update() {
...
}
}
对话框类
public class Dialogs extends Activity {
@Override
protected Dialog onCreateDialog(int id) {
...
}
...
//Called on Dialog-Butten press
private void ReloadActivity(){
if(DialogCalledByClass.contains("MyActivity")) {
MyActivity.update();// It doesn't worke because non-static....
}
else if(DialogCalledByClass.contains("MyActivity2")) {
}
}
public void showMyDialog(Context ctx,int id) {
showDialog(id);
DialogCalledByClass =ctx.getClass().toString();
}
}
这就是我试过的...
最佳答案
例如...您可以创建自己的对话框而不是创建 BaseActivity:
class myDialog extends AlertDialog {
Activity myActivity;
public myDialog(Activity myAct){
myActivity=myAct;
}
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.my_dialog);
...
...
}
@Override
public void dismiss(){
myActivity.update();
}
@Override
public void cancel(){
myActivity.update();
}
}
我不知道我是否理解你的问题,但这是一个想法。希望对您有所帮助。
关于android - 如何为不同的 Activity 实现对话?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7535398/