0

送信ボタンをクリックすると、次はアクティビティが開始されますが、テキスト ビューでは、次のコードで null の結果が生成されます。

ユーザーの詳細を ArrayList に保存し、それを別のアクティビティに渡して、個別に、またはグループとして表示したいと考えています。

クラスA

ArrayList<String> fieldText = new ArrayList<String>();
   Intent i1; Bundle bnd1;

btSubmit.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                i1 = new Intent(WidgetDemo1Activity.this, Welcome.class);

                getDetails();

                startActivityForResult(i1,0);




            }
        });

public void getDetails(){
        fieldText.add(0, etuname.getText().toString());
        fieldText.add(1, etpass.getText().toString());
        //i1.putExtra("uname", etuname.getText().toString());
        //i1.putExtra("pass", etpass.getText().toString());
        bnd1 = new Bundle();
        //----- adding values of different field to bundle----- 
        //bnd1.putString("uname", etuname.getText().toString());
        //bnd1.putString("pass", etpass.getText().toString());
        bnd1.putStringArrayList("data", fieldText);
        i1.putExtras(bnd1);

        }

クラスB

tv1= (TextView) findViewById(R.id.txtView);
tv1.setText("Welcome "+ getIntent().getExtras().getStringArrayList("uname"));
4

3 に答える 3

0

クラスA..................。

ArrayList<String> fieldText = new ArrayList<String>();
   Intent i1; Bundle bnd1;

btSubmit.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                i1 = new Intent(WidgetDemo1Activity.this, Welcome.class);

                getDetails();

                startActivityForResult(i1,0);




            }
        });

public void getDetails(){
        fieldText.add(0, etuname.getText().toString());
        fieldText.add(1, etpass.getText().toString());
        //i1.putExtra("uname", etuname.getText().toString());
        //i1.putExtra("pass", etpass.getText().toString());
        bnd1 = new Bundle();
        //----- adding values of different field to bundle----- 
        //bnd1.putString("uname", etuname.getText().toString());
        //bnd1.putString("pass", etpass.getText().toString());
        bnd1.putStringArrayList("data", fieldText);
        i1.putExtras(bnd1);

        }

クラスB.............。

TextView tv1;
protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

        setContentView(R.layout.welcome);

        ArrayList<String> al= new ArrayList<String>();
        al = getIntent().getExtras().getStringArrayList("data");
        tv1= (TextView) findViewById(R.id.txtView);

        tv1.setText("Welcome "+ al.get(0)); // get string at 0 index 


    }
于 2012-07-09T20:21:48.510 に答える
0

使用する

 ArrayList<String> arry=new ArrayList<String>();
 arry= getIntent().getExtras().getStringArrayList("data");

それ以外の

tv1.setText("Welcome "+ getIntent().getExtras().getStringArrayList("uname"));

最初のアクティビティからキーとして渡し、2 番目のアクティビティから data抽出しているためuname


編集:

Second Activity で ArrayList を抽出することもできます。

Bundle bundle = this.getIntent().getExtras();
ArrayList<String> fieldText = new ArrayList<String>();

if(bundle !=null)
{
  fieldText = bundle.getStringArrayList("data"); 
}
else
{

}

あなたが代わりに通りかかっArrayListているからですBundleIntent

于 2012-07-09T19:48:30.197 に答える
0

バンドルから検索するために使用しているキーが異なります。以下のようなものを使用してください。

tv1.setText("Welcome "+ getIntent().getExtras().getStringArrayList("data"));
于 2012-07-09T19:50:02.050 に答える