2016-03-04 3 views
-1

Я пытаюсь извлечь пользовательский ввод в определенном диалоговом окне. Однако, когда я пытаюсь использовать findViewbyID и я поставил вfindViewbyID с диалогами

final EditText ExceedingLimitInput = (EditText)dialog.findViewbyId(R.id.ExceedingLimitInput); 

Android Studio говорит, что диалог не определен. Я не совсем уверен, что я должен здесь делать.

Я прорыл некоторые из вопросов, связанных с этим, однако большинство из них связано только с использованием фрагментов, в то время как я не использую какие-либо фрагменты. Может быть, я расширяю не тот класс?

Может кто-нибудь показать, почему диалог не определяется, и как я могу это исправить?

Вот мой код для справки:

Настройки меню (Main Class)

package com.example.denny.protoype2; 

import android.app.Dialog; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 


public class SettingsMenu extends AppCompatActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_settings_menu); 
     //Exceeding Limit Dialog 
     final Button ExceedingLimitButton = (Button)findViewById(R.id.ExceedingLimitButton); 
     ExceedingLimitButton.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       Dialog ExceedingLimitDialog = new Dialog(SettingsMenu.this); 
       ExceedingLimitDialog.setTitle("Exceeding Limit Dialog"); 
       ExceedingLimitDialog.setContentView(R.layout.exceeding_limit_dialog); 
       ExceedingLimitDialog.show(); 

       final EditText ExceedingLimitInput = (EditText)dialog.findViewbyId(R.id.ExceedingLimitInput); 

      } 
     }); 
    } 
} 
+1

Гм, вы ищете что-то в диалоговом окне, которое вы никогда не определены, вы определили ExceedingLimitDialog, чтобы заменить диалог с ExceedingLimitDialog – Alk

+0

Да, lol. Я завязал эту тупую ошибку. Спасибо что подметил это! – ForceFieldsForDoors

ответ

1

Прежде всего, вы должны раздуть ваш взгляд

View view = View.inflate(this, R.layout.exceeding_limit_dialog, null); 

Затем установите его в диалоговом

ExceedingLimitDialog.setContentView(view); 

И, наконец, вы можете найти свой EditText

final EditText ExceedingLimitInput = (EditText) view.findViewById(R.id.ExceedingLimitInput); 
+0

Теперь он говорит, что findViewbyID по какой-то причине не определено ... – ForceFieldsForDoors

+0

Может быть, проблема маленькая 'b' в findViewById – Bashalex

+0

Wow ... Я такой dweeb: / – ForceFieldsForDoors

5

сделать как

final EditText ExceedingLimitInput = (EditText)ExceedingLimitDialog.findViewbyId(R.id.ExceedingLimitInput); 

dailog == ExceedingLimitDialog в вашем случае

Смежные вопросы