Как перенести данные с одного экрана на другой в Android? - PullRequest
0 голосов
/ 17 ноября 2011

Я пытаюсь перенести данные с одной страницы на другую, но возникает какая-то проблема.ниже code.its принудительно закрывает приложение после нажатия кнопки второй страницы

Вот моя первая программа:

package com.life.insurance;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
/*import android.view.Menu;*/
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;


public class LifeInsuranceActivity extends Activity implements OnClickListener{
/*    private static final int MENU_STARS = 1;
    private static final int MENU_REFRESH = 2;*/
  Context mCtx;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button submit =(Button)findViewById(R.id.button1);
        submit.setOnClickListener(this);
    }


    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()){
        case R.id.button1:
             mCtx = this;

             String intext = new String();
             intext=((EditText)findViewById(R.id.editText1)).getText().toString(); 

                Intent myIntent = new Intent(mCtx, MenuSelection.class); 
                Bundle bundle = new Bundle(1);
                bundle.putString("ganna", intext);
                myIntent.putExtras(bundle);

                /*Start Activity*/
                mCtx.startActivity(myIntent);

                /*Start ActivityForResult*/
                ((Activity)mCtx).startActivityForResult(myIntent, 2);

            setContentView(R.layout.menuselection);
            break;      
        }
    }
}

Это моя вторая активность

package com.life.insurance;

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

public class MenuSelection  extends Activity implements OnClickListener{
     String ot;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.menuselection);
        Button search =(Button)findViewById(R.id.imageButton1);
        search.setOnClickListener(this);
        Bundle extras = this.getIntent().getExtras();
        ot =extras.getString("ganna").toString();
        final  TextView r =(TextView)findViewById(R.id.txt1);
        r.setText(ot);

    }

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    switch (v.getId()){
    case R.id.imageButton1:


        break;

    }
  }

}

пожалуйста, помогите мне сделать это

1 Ответ

3 голосов
/ 17 ноября 2011

Трудно ответить без дампа logcat, но я думаю, что есть несколько вещей, которые нужно проверить.Во-первых, отправка строки должна быть простой:

intent.putExtra("key", "value");

Если вы хотите отправлять сложные объекты или пакеты, вы можете это сделать, но я придерживаюсь вашей проблемы отправки и чтения строки.

getIntent().getStringExtra("key")

Я думаю, что использование Bundle в вашем случае не является необходимым.

Во-вторых, вы вызываете startActivity и startActivityForResult.Позвони одному или другому.Поскольку вы ищете ответ, вы, вероятно, захотите использовать последний.

Наконец, убедитесь, что вы добавили в свой манифест второе действие, как предложено ниже.Вы также хотите использовать контексты вашей активности, а не кнопки при запуске последующих действий.

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

...