2013-08-27 3 views
1

Нужна помощь в отладке моего кода. Я очень новичок в Android SDK и работаю над его изучением. Из того, что я могу почерпнуть из нескольких сообщений в SO и других результатах поиска google ... Я сформулировал этот код.Закрытие Android-приложения при нажатии кнопки (на странице пользовательской регистрации)

public class MainMenu extends Activity { 
private int str = 8, dex = 8, inte = 8, luk = 8, stats = 20; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    getActionBar().setDisplayShowHomeEnabled(false); 
    getActionBar().setDisplayShowTitleEnabled(false); 
    setContentView(R.layout.activity_main_menu); 
} 

Как вы можете видеть, я создал несколько частных переменных, которые мое приложение будет использовать для хранения данных. Чтобы взаимодействовать с этими значениями, я буду перерисовывать TextView каждый раз, когда они будут изменены. * Не стесняйтесь исправить меня здесь, если это не идеальная стратегия.

public void strup(View view) { 
    if(stats > 0) { 
    TextView tv = (TextView)findViewById(R.id.textView4); 
    TextView st = (TextView)findViewById(R.id.textView18); 
    str++; 
    stats--; 
    tv.setText(str); 
    st.setText(stats); 
    } else { 
    Toast.makeText(this, "Out of stats!", Toast.LENGTH_SHORT).show(); 
    } 

Я пользуюсь кнопкой со следующим форматом.

Str [X] [+1] 

Где Str [X] - это TextView с X динамическим значением. Также, где [+1] - кнопка с функцией Onclick, заданной XML-файлом.

<TextView 
     android:id="@+id/textView9" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Str [" /> 

    <TextView 
     android:id="@+id/textView4" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="8" /> 

    <TextView 
     android:id="@+id/textView13" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="]" /> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:onClick="strup" 
     android:text="+1" /> 

Теперь для простоты я изменил «Android: текст =»»" линии, чтобы отразить фактические значения вместо ссылок на @string/... Я не думаю, что это делает из большой разницы, но Я хотел это признать.

Так что мой вопрос в том, почему мое приложение падает, когда я нажимаю кнопку «+1»? Все мое приложение пытается сделать, это перерисовать TextView с более высоким значением (под str) и более низким значением (по статистике).

Спасибо за любую помощь!

ответ

4

Вы передаете целочисленное значение в settext. Либо литая целое число в строку или вы можете попытаться изменить SetText так:

tv.setText(""+str); 
    st.setText(""+stats); 
0

Попробуйте это изменение позиции вашего setContentView(R.layout.activity_main_menu);

public class MainMenu extends Activity { 
private int str = 8, dex = 8, inte = 8, luk = 8, stats = 20; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main_menu); 
    getActionBar().setDisplayShowHomeEnabled(false); 
    getActionBar().setDisplayShowTitleEnabled(false); 

} 
+0

Это не будет иметь никакого значения ... проверьте мой ответ. –

0

Вы пытались создать этот объект:

TextView st = (TextView)findViewById(R.id.textView18); 

где находится textView18 в XML?

0

и может касту с помощью метода ToString, как это:

tv.setText (. Ул ToString()); st.setText (статистика toString());

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