0
嗨全部 我想從第一個(主要)活動中的第二個活動獲取值。爲此,我使用onActivityResult以第一性。它僅將第一次(主)活動從第二次活動返回到第一次活動。再次,我來到firstactivity以前的價值只顯示。onActivityResult適用於第一個問題
我的申請流程:
一線>二線>第一
第一(主)活動:
public class secondactivity extends Activity {
/** Called when the activity is first created. */
CheckBox c1,c2;
TextView t;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.secondactivity);
c1=(CheckBox)findViewById(R.id.checkBox1);
c2=(CheckBox)findViewById(R.id.checkBox2);
c1.setOnClickListener(new View.OnClickListener()
{
public void onClick(View view)
{
c1.setChecked(true);
Bundle bundle = new Bundle();
bundle.putString("key1",String.valueOf(c1.getText()));
Intent myIntent = new Intent(view.getContext(), main.class);
myIntent.putExtras(bundle);
setResult(RESULT_OK, myIntent);
finish();
}
});
c2.setOnClickListener(new View.OnClickListener()
{
public void onClick(View view)
{
c2.setChecked(true);
Bundle bundle = new Bundle();
bundle.putString("key1",String.valueOf(c1.getText()));
Intent myIntent = new Intent(view.getContext(), main.class);
myIntent.putExtras(bundle);
setResult(RESULT_OK, myIntent);
finish();
}
});
}
}
請幫助我:
public class main extends Activity {
/** Called when the activity is first created. */
LinearLayout l2;
TextView tv2;
String check=null;
// static int value=0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
l2 = (LinearLayout)findViewById(R.id.linearLayout2);
tv2=(TextView)findViewById(R.id.textView2);
l2.setClickable(true);
l2.setOnClickListener(new View.OnClickListener()
{
public void onClick(View view)
{
Intent myIntent = new Intent(view.getContext(), secondactivity.class);
startActivityForResult(myIntent, 0);
}
});
}
@Override
public void onActivityResult(int reqCode, int resCode, Intent data)
{
Log.e("runapp1","onActivityResult");
Bundle bundle = data.getExtras();
check = bundle != null ? bundle.getString("key1") : "";
Log.e("runapp1","onActivityResult value "+check);
tv2.setText(check);
}
}
在第二個活動
。
你實際上正在完成你的'onCreate'方法中的第二個活動嗎?什麼是'c1'?它的價值是否在每次訪問第二項活動時都發生變化?你能分享一下佈局嗎?謝謝。 – rekaszeru 2011-04-28 07:58:17
c1表示複選框c1。第二項活動是完成。 – 2011-04-28 08:06:09
如果您立即使用其onCreate方法完成第二項活動,您如何期望其視圖中複選框的文本發生改變?如果它沒有改變,相同的文本將會通過意圖的額外一遍又一遍傳遞,所以你在第一個活動的'onActivityResult'中沒有相同的值。 – rekaszeru 2011-04-28 08:12:01