2013-01-22 8 views
0

У меня проблема, которая сводит меня с ума, я хочу получить «n» строковые значения из комплекта, каким-то образом avd вылетает, когда я нажимаю кнопку «отправить».Извлечение из намерения в Android

активность 1

public void enviar(View view){ 
    Intent intento=new Intent(this, Segunda.class); 

    Bundle bundle=new Bundle(); 
    String usuarioS=editText.getText().toString(); 
    editText1 = (EditText) findViewById(R.id.usuarioID);   
    bundle.putString("usuario", usuarioS); 
    intento.putExtras(bundle); 



    startActivity(intento); 
} 

активность 2

public class Segunda extends Activity { 

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


    String message,message1; 

     Bundle extras = getIntent().getExtras(); 

      message1 = extras.getString("usuario"); 
      TextView textView1 = (TextView)findViewById(R.id.usuariofID);  
      textView1.setText(message1); 



} 

Это мой код. Куда я возился?

LogCat (обновление)

01-22 19:54:54.055: W/Trace(1270): Unexpected value from nativeGetEnabledTags: 0 
01-22 19:54:54.104: D/AndroidRuntime(1270): Shutting down VM 
01-22 19:54:54.104: W/dalvikvm(1270): threadid=1: thread exiting with uncaught exception (group=0x40a70930) 
01-22 19:54:54.155: E/AndroidRuntime(1270): FATAL EXCEPTION: main 
01-22 19:54:54.155: E/AndroidRuntime(1270): java.lang.IllegalStateException: Could not execute method of the activity 
01-22 19:54:54.155: E/AndroidRuntime(1270):  at android.view.View$1.onClick(View.java:3597) 
01-22 19:54:54.155: E/AndroidRuntime(1270):  at android.view.View.performClick(View.java:4202) 
01-22 19:54:54.155: E/AndroidRuntime(1270):  at android.view.View$PerformClick.run(View.java:17340) 
01-22 19:54:54.155: E/AndroidRuntime(1270):  at android.os.Handler.handleCallback(Handler.java:725) 
01-22 19:54:54.155: E/AndroidRuntime(1270):  at android.os.Handler.dispatchMessage(Handler.java:92) 
01-22 19:54:54.155: E/AndroidRuntime(1270):  at android.os.Looper.loop(Looper.java:137) 
01-22 19:54:54.155: E/AndroidRuntime(1270):  at android.app.ActivityThread.main(ActivityThread.java:5039) 
01-22 19:54:54.155: E/AndroidRuntime(1270):  at java.lang.reflect.Method.invokeNative(Native Method) 
01-22 19:54:54.155: E/AndroidRuntime(1270):  at java.lang.reflect.Method.invoke(Method.java:511) 
01-22 19:54:54.155: E/AndroidRuntime(1270):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
01-22 19:54:54.155: E/AndroidRuntime(1270):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
01-22 19:54:54.155: E/AndroidRuntime(1270):  at dalvik.system.NativeStart.main(Native Method) 
01-22 19:54:54.155: E/AndroidRuntime(1270): Caused by: java.lang.reflect.InvocationTargetException 
01-22 19:54:54.155: E/AndroidRuntime(1270):  at java.lang.reflect.Method.invokeNative(Native Method) 
01-22 19:54:54.155: E/AndroidRuntime(1270):  at java.lang.reflect.Method.invoke(Method.java:511) 
01-22 19:54:54.155: E/AndroidRuntime(1270):  at android.view.View$1.onClick(View.java:3592) 
01-22 19:54:54.155: E/AndroidRuntime(1270):  ... 11 more 
01-22 19:54:54.155: E/AndroidRuntime(1270): Caused by: java.lang.NullPointerException 
01-22 19:54:54.155: E/AndroidRuntime(1270):atcom.example.actividadesss.MainActivity.enviar(MainActivity.java:301-22 19:54:54.155: E/AndroidRuntime(1270): ... 14 more 
01-22 19:54:54.224:W/ActivityManager(286):Forcefinishingactivitycom.example.actividadesss/.MainActivity 
+1

Пожалуйста, ваши LogCat. – Kristopher

+0

Почему у вас есть 'editText1 = (EditText) findViewById (R.id.usuarioID);'? Вы хотите прочитать String из 'editText' или' editText1'? И вы используете один и тот же идентификатор в разных макетах, является ли это преднамеренным? – Sam

+0

показать свою ошибку в logcat – moDev

ответ

1

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

от:

public void enviar(View view){ 
    ... 
    String usuarioS=editText.getText().toString(); 
    editText1 = (EditText) findViewById(R.id.usuarioID); 
    ... 
} 

к:

public void enviar(View view){ 
    ... 
    editText = (EditText) findViewById(R.id.usuarioID); 
    String usuarioS=editText.getText().toString(); 
    ... 
} 
1

Во-первых, я хотел бы предложить, чтобы избавиться от кода, который не нужен. Вы можете использовать Intent.putExtra(), а не создавать пучок и помещать пакет в намерение. Минимизирующий код может помочь отладить вашу проблему, а иногда даже решить ее.

И я согласен с Дэвидом М в инициализации вашего EditText перед его использованием.

public void enviar(View view){ 
    Intent intento=new Intent(this, Segunda.class); 

    editText = (EditText) findViewById(R.id.usuarioID); 
    String usuarioS=editText.getText().toString(); 
    intento.putExtra("usuario", usuarios); 

    startActivity(intento); 
} 

Understanding Intents