私のアプリでは、リストを表示するAlertDialogから値を取得する必要があります。項目を選択した後、ボタンのテキスト(AlertDialogを表示するボタン)を変更すると、ダイアログが閉じられ、onResume()で処理を行う必要があります。
しかし、onResumeが呼び出されず、「ウィンドウはすでにフォーカスされています」という警告が表示されます。原因は、ダイアログからボタンのテキストを変更したため、すでにウィンドウが表示されているためだと思います。しかし、私はonResume(à。それを行う方法は?
AlertDialog:
AlertDialog.Builder mBuilder = new AlertDialog.Builder(this);
mBuilder.setTitle("Type de l'observation");
mBuilder.setSingleChoiceItems(titles,-1, new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialogInterface, int item) {
mDescriptor.setmObservationValue(
mContext.getResources().getStringArray(R.array.post_values)[item]);
mObservationButton.setText(titles[item]);
dialogInterface.dismiss();
return;
}
});
mDialog = mBuilder.create();
onClickメソッド:public void onObservationClick(View v){mDialog.show(); }
およびonResume():
@Override
protected void onResume() {
if(!mDescriptor.getmObservationValue().equals(""))
{
String value = mDescriptor.getFieldKey();
Log.v("VALUE : ",value);
if(value.equals("VentValue"))
{
mFieldLayout.setVisibility(View.VISIBLE);
mUnit.setText("km/h");
}
else if(value.equals("PluieValue"))
{
mFieldLayout.setVisibility(View.VISIBLE);
mUnit.setText("mm");
}
else if(value.equals("NeigeValue"))
{
mFieldLayout.setVisibility(View.VISIBLE);
mUnit.setText("mm");
}
else if(value.equals("TempValue"))
{
mFieldLayout.setVisibility(View.VISIBLE);
mUnit.setText("°C");
}
else if(value.equals("VisValue"))
{
mFieldLayout.setVisibility(View.VISIBLE);
mUnit.setText("m");
}
else
{
mFieldLayout.setVisibility(View.GONE);
mUnit.setText("");
}
}