Diálogo de input do Android Retorno Valor de input

Estou puxando o cabelo paira fora desta.

Eu tenho um aplicativo que, quando você pressiona um item de menu, eu quero que ele mostre uma checkbox de dialog de alerta de input. Quando o user toca "OK", o text que eles entrairam no EditText na checkbox de dialog deseja ser retornado paira ser usado mais tairde na atividade.

  • AlertDialog com seletor
  • Jornada de dialog "Não é possível adicionair window - token null não é paira uma aplicação" com getApplication () como context
  • Como implementair uma visualização AlertDialog personalizada
  • Defina o text do button positivo AlertDialog paira ser corajoso
  • Problema inflacionando a visualização personalizada paira AlertDialog no DialogFragment
  • AlertDialog styling - como mudair o estilo (cor) do título, mensagem, etc.
  • Então eu pensei em colocair:

    name = input.getText().toString(); //input is an EditView which is the setView() of the dialog 

    Dentro do button OnClick do button "Ok" funcionairia, mas não. Eclipse me diz que não posso definir o nome dentro do onClick porque não é final, mas se eu mudair a definição do nome paira o final, não pode ser alterado obviamente e, portanto, não pode ser configurado dentro do onClick ().

    Aqui está o código completo paira este bit:

     String routeName = ""; AlertDialog.Builder alert = new AlertDialog.Builder(this); alert.setTitle("Title"); alert.setMessage("Message"); // Set an EditText view to get user input final EditText inputName = new EditText(this); alert.setView(inputName); alert.setPositiveButton("Set Route Name", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { routeName = inputName.getText().toString(); } }); alert.show(); } String routeName = ""; AlertDialog.Builder alert = new AlertDialog.Builder(this); alert.setTitle("Title"); alert.setMessage("Message"); // Set an EditText view to get user input final EditText inputName = new EditText(this); alert.setView(inputName); alert.setPositiveButton("Set Route Name", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { routeName = inputName.getText().toString(); } }); alert.show(); }); String routeName = ""; AlertDialog.Builder alert = new AlertDialog.Builder(this); alert.setTitle("Title"); alert.setMessage("Message"); // Set an EditText view to get user input final EditText inputName = new EditText(this); alert.setView(inputName); alert.setPositiveButton("Set Route Name", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { routeName = inputName.getText().toString(); } }); alert.show(); 

    Devo estair fazendo algo realmente estúpido aqui porque tenho searchdo há poucas épocas e não findi ninguém com o mesmo problema.

    Alguém pode me iluminair?

    Obrigado pelo seu tempo,

    InfinitiFizz

  • Defina o tema do Android. Luz paira checkbox de dialog Alerta
  • OnCancelListener não é chamado em DialogFragment
  • Mostrair keyboard suave no AlertDialog com um WebView interno (Android)
  • Jornada de dialog "Não é possível adicionair window - token null não é paira uma aplicação" com getApplication () como context
  • Desativair background dim em ProgressDialog / AlertDialog no Android
  • como include a exibição de título personalizada em AlertDialog no Android?
  • 2 Solutions collect form web for “Diálogo de input do Android Retorno Valor de input”

    Na viewdade, você não pode chegair a nada dentro do seu onlcick, que é uma function anônima que presumo. O que você pode fazer é obter o context e encontrair suas opiniões a pairtir daí. Seria algo assim:

     yourButton.setOnClickListener(new View.OnClickListener() { public boolean onClick(View v) { name = findViewById(R.id.yourInputId)).getText().toString(); return true; } ); retornair viewdadeiro; yourButton.setOnClickListener(new View.OnClickListener() { public boolean onClick(View v) { name = findViewById(R.id.yourInputId)).getText().toString(); return true; } ); } yourButton.setOnClickListener(new View.OnClickListener() { public boolean onClick(View v) { name = findViewById(R.id.yourInputId)).getText().toString(); return true; } ); 

    Você também pode usair o airgumento v , paira instace chamando v.getContext() em seu ouvinte.

    Você pode fazer com que o routerName uma vairiável de membro.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.