EditText в onDraw () - PullRequest
       13

EditText в onDraw ()

2 голосов
/ 30 мая 2011

Я знаю, как добавить EditText, но не в функцию onDraw ().

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(new GaugeAnimation((this),10));

    EditText input = (EditText) findViewById(R.id.input);

    input.setText("hello");
}

Выше не будет работать, также ниже не работает:

@Override
public void onDraw(Canvas c){


    EditText input = (EditText) findViewById(R.id.input);
    input.setText("hi");

}

так как я могу это сделать?Я бы хотел добавить редактируемое текстовое поле, но я не использую:

setContentView(new R.layout.main);

.Какие-либо предложения?

я пытался:

public class GaugeAnimation extends View{
         public GaugeAnimation(Context context, int value){
            EditText input = new EditText(context);
    input.setId(R.id.input);
 }
}

но все равно не работает, что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 31 мая 2011

Полагаю, вам нужно накачать текст редактирования до вида, чтобы иметь возможность его использовать. Без надувания ваш текст редактирования еще не создан.

0 голосов
/ 30 мая 2011

Когда вы создаете представление GaugeAnimation, убедитесь, что оно вызывает setId(R.id.input) для представления EditText, которое вы хотите использовать для ввода.Тогда ваш первый метод сработает.

Вы должны знать, что не следует обновлять элементы пользовательского интерфейса из метода представления onDraw, как вы пытались.

...