私は3つのクラス、main、Sublist、editcrapを持っています。setText()を使用して更新した後にTextViewが消える
今のところ私は2つのテキストビューをSublist xmlファイルのButtonで区切っています。私のeditcrap xmlファイル内のEditTextとButtonを使用します。
私がしたかったのは、editcrapアクティビティのEditTextからテキスト入力を受け取り、ボタンをクリックしてそれをSublistアクティビティに戻し、Sublist xmlファイルの1番目のテキストビューに表示することでした。私はこれを、サブリストの活動からインテントとstartActivityForResult()を使用して行っています。
問題:
しかし、サブリストの活動にデータBAKを受信した後、 「subject1.setText(newText);」の後にコードが実行されます...エミュレータのSublistアクティビティに表示されるのは、ボタン(2つのTextViewの間にあるはずです)と右側のTextViewです。左のTextViewが消えます。エミュレータでもエラーでもない... TextViewだけが消える。私はこれを回避するために努力してきましたが、運はありません。誰かが私を見落としていると私に伝えることができましたか? :)
私のコード:
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode)
{
case 1: if(resultCode==Activity.RESULT_OK)
{
String newText = data.getStringExtra("thetext");
subject1.setText(newText);
// this is where the textview supposed to update but
// instead vanishes entirely
}
break;
}
}
//second activity's code:
sub1 = (EditText) findViewById(R.id.peditText1);
final String theText = sub1.getText().toString();
parambutton1 = (Button) findViewById(R.id.parambutton1);
parambutton1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i = new Intent(editcrap.this, Sublist.class);
i.putExtra("thetext", theText);
setResult(Activity.RESULT_OK, i);
finish();
}
});
}
これは、第二の活動はのEditTextから入力されたテキストを返す方法です。
他のアクティビティnewTextから返されたデータが空の場合、TextViewは '消えてしまう'と思います。データを渡すためのコードを表示できますか? (うまくいけばsetResult(int resultCode、Intent data)の呼び出し) – antonyt
余分なものがセットされていますか? 2番目のアクティビティで余分なデータがどのように格納されるかを表示できますか? – Ribose
私は私の質問を編集し、2番目のアクティビティからのコードのputExtra部分を示しました:) – zanazaar