Я пытаюсь получить свою первую кнопку, чтобы обновить номер дисплея в моем представлении при нажатии. В этом представлении будет отображаться несколько кнопок и «выходы». После прочтения примеров и Q здесь я наконец положил что-то вместе, что работает, но моя первая кнопка все еще не работает;Нужна помощь, чтобы получить кнопки для работы
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ship_layout);
mSwitcher = (TextSwitcher) findViewById(R.id.eng_val);
}
private TextSwitcher mSwitcher;
// Will be connected with the buttons via XML
void onClick(View v){
switch (v.getId()) {
case R.id.engplus:
engcounter++;
updateCounter();
break;
case R.id.engneg:
engcounter--;
updateCounter();
break;
}
}
private void updateCounter() {
mSwitcher.setText(String.valueOf(engcounter));
}
.xml для этой кнопки есть;
<TextSwitcher
android:id="@+id/eng_val"
android:visibility="visible"
android:paddingTop="9px"
android:paddingLeft="50px"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/build"
android:layout_toRightOf="@+id/engeq"
android:textColor="#DD00ff00"
android:textSize="24sp"/>
Это в относительной компоновке, которая выглядит иначе. Когда я установил представление TextView с номером, установленным в виде строки, номер отображался, но я не мог понять, как обновить текст с помощью числового поля. Это может быть моей реальной проблемой.
Я рассмотрел множество примеров, обычно ссылающихся на разработчика. (UI, Common Tasks, различные образцы), и я до сих пор не вижу связи здесь ...
Опять же, это просто попытка заставить переменные отвечать на кнопки и обновлять их.
Итак, несколько Q для тех, кто может помочь;
1) Есть ли более простой способ сделать это (то есть отправить числовое значение для просмотра)? 2) Почему мой TextSwitcher не отображает номер? 3) Должен ли я использовать TextSwitcher здесь? 4) Любые примеры этого вы можете указать мне?
UPDATE !!!: Кнопки с обратной связью теперь работают. Вот мое решение, основанное на отзывах, исследованиях и удаче;
общественный класс MyView расширяет Myapp реализует ViewSwitcher.ViewFactory, View.OnClickListener {
public int engcounter = 1;
private TextSwitcher mSwitcher;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_layout);
mSwitcher = (TextSwitcher) findViewById(R.id.eng_val);
mSwitcher.setFactory(this);
Button engp = (Button) findViewById(R.id.engplus);
engp.setOnClickListener(new View.OnClickListener() {
public void onClick(View view){
engcounter++;
updateCounter();
}
});
Button engn = (Button) findViewById(R.id.engneg);
engn.setOnClickListener(new View.OnClickListener() {
public void onClick(View view){
engcounter--;
updateCounter();
}
});
}
private void updateCounter() {
mSwitcher.setText(String.valueOf(engcounter));
}
public View makeView() {
TextView t = new TextView(this);
t.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL);
t.setTextSize(36);
return t;
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
Часть этого появляется ненужный в данный момент (то есть. Гравитация на makeView), но это работает! И должен работать на 10-20 кнопок, с которыми я хочу делать разные вещи.
Ключ был прав слушателей, и вся настройка для TextSwitcher была неловкой ... до сих пор учиться.
Любые другие заключительные комментарии приветствуются!
UPDATE UPDATE !! Я тоже нашел это;
http://developer.android.com/resources/articles/ui-1.6.html
Хм ... спасибо. Я понимаю что ты имеешь ввиду. Я добавил их к моему мнению, и теперь он сработает (до того, как он ничего не сделал, но я мог нажимать на кнопки) ... будет продолжать смотреть на него ... –
Чтобы уточнить, он падает только тогда, когда я нажимаю на любой из этих 2 кнопок. Другие кнопки и в противном случае - в порядке. –
У вас должна быть stacktrace на выходе LogCat, которая позволяет узнать, почему он разбился. Поместите это здесь, если вы не можете это понять. –