我很清楚 Android 以异步方式管理其对话框,以提高性能、内存改进等。但问题是我遇到了一个简单的情况,我需要获取用户给出的输入以便执行应用程序。因为我使用的是对话框,所以这一切都搞砸了,导致应用程序的流程继续用户是否在我的提示对话框中写了一些东西。有什么办法解决这个吗???
这是代码:
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case 1:
startActivity(new Intent("HOMESCREEN"));
break;
case 2:
String searched = prompt("Search", HomeScreen.this);
Intent data = new Intent("RESULTSSCREEN");
data.putExtra("SearchCriteria", "");
startActivity(data);
break;
case 3:
//....
break;
}
return true;
}
这是提示的代码:
public String prompt(String message, Context ctx)
{
//load some kind of a view
LayoutInflater li = LayoutInflater.from(ctx);
View view = li.inflate(R.layout.prompt_layout, null);
//get a builder and set the view
AlertDialog.Builder builder = new AlertDialog.Builder(ctx);
builder.setTitle("Search");
builder.setView(view);
//add buttons and listener
PromptListener pl = new PromptListener(view);
builder.setPositiveButton("OK", pl);
builder.setNegativeButton("Cancel", pl);
//get the dialog
AlertDialog ad = builder.create();
//show
ad.show();
return pl.getPromptReply();
}
问题是意图数据在用户完成编写搜索条件之前执行。问候