2013-12-14 3 views
0

Я получаю сообщение об ошибке при запуске приложения для Android на моем устройстве Android. Он говорит: «К сожалению, GuessingGame остановился. Он работал раньше, но с тех пор, как я добавил EditText в макет, он сбой. Вот мой MainActivity.java:Мое приложение разбило андроидное затмение?

package com.h2ogaming.numberguessinggame; 

import java.util.Random; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     final TextView textOne = (TextView) findViewById(R.id.textView1); 
     Button pressMe = (Button) findViewById(R.id.button1); 



    pressMe.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      String randText = ""; 
      // TODO Auto-generated method stub 
      Random randGen = new Random(); 
      int random = randGen.nextInt(5) + 1; 
      randText = Integer.toString(random); 
      textOne.setText(randText); 
     } 
    }); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

} 

Вот мой Activity_Main XML файл:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" 
    android:background="#2288ee"> 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="79dp" 
     android:text="@string/guess_text" 
     android:textColor="#ffffff" 
     android:textSize="26sp" /> 

    <EditText 
     android:id="@+id/editText1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/textView2" 
     android:layout_centerHorizontal="true" 
     android:ems="10" 
     android:inputType="number" > 

     <requestFocus /> 
     </EditText> 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/editText1" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="19dp" 
     android:text="@string/text_view1" 
     android:textColor="#ffffff" 
     android:textSize="26sp" /> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/textView1" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="22dp" 
     android:text="@string/btn_press" /> 

</RelativeLayout> 

Пожалуйста, помогите мне. Благодаря!

+0

сообщение авария plz .... я имею в виду logcat plz – KOTIOS

+0

Наличные? Извините, новый для android. – Gunnar

+0

Вам нужно опубликовать отчет cRash. Я думаю, вы, вероятно, получаете исключение nullpointer. – nhgrif

ответ

1

Измените свою инициализацию для компонентов. Declare надлежащим образом всех компонентов по всему миру. затем инициализируйте его, как показано ниже:

public class MainActivity extends Activity { 
TextView textOne; 
Button pressMe; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     textOne = (TextView) findViewById(R.id.textView1); 
     pressMe = (Button) findViewById(R.id.button1); 
+0

Я использовал ваш код, но он все еще не работал. Но по какой-то причине, когда я нажал чистый проект, он сработал! Я не знаю, как это исправить проблему. Благодаря! – Gunnar

+0

как это полезно? –

+0

Ну, я не объявлял свою Button и TextView глобально. Теперь я знаю. – Gunnar

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