2
내 메뉴의 특정 옵션이 호출되면 AlertDialog를 호출하려고합니다. 사용자가 선택한 것은 인터넷의 XML 페이지에 매개 변수로 전달하는 것이 중요합니다.메뉴 옵션에서 전화를 걸면 Android AlertDialog가 표시되지 않습니다.
나는 다음을 시도했지만 AlertDialog가 결코 표시하지 않으면 바로 다음 활동으로 넘어 간다.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.kantoor:
//Opent de office activity
final SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
String arbeiderbed = pref.getString("ArbeiderBediende", "");
if(arbeiderbed.equals("")){
final CharSequence[] beroep = {"Arbeider","Bediende"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Kies uw statuut");
builder.setSingleChoiceItems(beroep, -1, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
if (beroep[which].equals("Arbeider")){
SharedPreferences.Editor editor = pref.edit();
editor.putString("ArbeiderBediende", "arbeider");
editor.commit(); // Very important
}
else{
SharedPreferences.Editor editor = pref.edit();
editor.putString("ArbeiderBediende", "bediende");
editor.commit(); // Very important
}
}
});
builder.create().show();
}
Intent office = new Intent(MainActivity.this, Settings.class);
startActivity(office);
return true;
확인. 그러나 사용자가 자신의 설정에서 이미 자신의 선택을 지정했을 수 있습니다. 그래서 SharedPreferences를 호출합니다. 지정되어있는 경우 앱은 AlertDialog를 팝업하지 않고 Activity를 실행해야합니다. – Hannelore
코드를 복제하지 않고 이것을 수행 ... – Hannelore
잘 누른 다음, 활동을 호출하는 코드를 메소드로 추출하고 해당 메소드를 호출하십시오. 이 메소드를 호출하는'else' 브랜치도 있어야합니다. –