私は、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();
}
問題は、ユーザーが検索基準を書き終える前に意図データが実行されていることです。よろしく