-1

共有設定を使用して、あるアクティビティの 2 つの編集テキストから別のアクティビティの 2 つのテキスト ビューにテキストを取得しようとしています。私はこの方法をすでに成功裏に使用しましたが、1つのテキストビューに対して1つの編集テキストのみでした。今回は、定義した文字列にアクセスできず、入力したデフォルト値しか取得できないため、何が問題なのかわかりません。助けていただければ幸いです。よろしくお願いします。

最初の活動:

eActname = (EditText) findViewById(R.id.eACTName);
                eActbud = (EditText) findViewById(R.id.eACTBud);
                nameData = getSharedPreferences(namefilename, 0);
                budData = getSharedPreferences(budfilename, 0);
 
                bCreate = (Button) findViewById(R.id.bCreateActivity);
                bCreate.setOnClickListener(new View.OnClickListener() {
 
                        @Override
                        public void onClick(View v) {
                                // TODO Auto-generated method stub
                                Intent o = new Intent(ActivityCreate.this, ActView.class);
                                String[] actstrings = new String[] {
                                                eActname.getText().toString(),
                                                eActbud.getText().toString() };
                                o.putExtra("string", actstrings);
 
                                switch (v.getId()) {
                                case R.id.bCreateActivity:
                                        bCreateClick();
 
                                        break;
                                }
                        }
 
                        private void bCreateClick() {
                                // TODO Auto-generated method stub
                                String namestringData = eActname.getText().toString();
                                SharedPreferences.Editor editor = nameData.edit();
                                editor.putString("namesharedString", namestringData);
                                editor.commit();
                                String budstringData = eActbud.getText().toString();
                                SharedPreferences.Editor budeditor = budData.edit();
                                budeditor.putString("budsharedString", budstringData);
                                budeditor.commit();

次に、2 番目のアクティビティのコード:

tvActName = (TextView) findViewById(R.id.tvActName);
                tvActBud = (TextView) findViewById(R.id.tvActBud);
                Intent o = getIntent();
                o.getStringArrayExtra("strings");
                tvActName.setText(o.getStringExtra("text"));
                tvActBud.setText(o.getStringExtra("text"));
                nameData = getSharedPreferences(namefilename, 0);
                budData = getSharedPreferences(budfilename, 0);
                String [] actdataReturned = {nameData.getString("namesharedString", "Error"), budData.getString("budsharedString", "Error")} ;
                
                tvActName.setText(actdataReturned[0]);
                tvActBud.setText(actdataReturned[1]);
4

1 に答える 1

0

インテントにデータを書き込むときは、「strings」という名前のデータを読み取るときに「string」という名前を付けました。

于 2013-10-22T18:16:53.073 に答える