onActivityResult传值的使用
有时候在群里加入的新人总会喜欢问一些过去的问题? 有时候不想回答 是因为回答的次数多了
不回答又打击人的积极性? 谁让自己接触的早呢? 为了省劲还是把简单的东西作为指导篇吧
?
多个activity之间的传值 其实就是onActivityResult,然后别忘了还有一个action的问题 就是在主xml中添加自己的action以便于识别,最后次activity别忘了finansh。
public class Wizard extends Activity { private TextView step1result, step2result, step3result; public static final String INTENT_STEP1 = "com.novoda.STEP1"; public static final String INTENT_STEP2 = "com.novoda.STEP2"; public static final String INTENT_STEP3 = "com.novoda.STEP3"; private static final int STEP1 = 1; private static final int STEP2 = 2; private static final int STEP3 = 3; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.wizard); this.step1result = (TextView)findViewById(R.id.step1result); this.step2result = (TextView)findViewById(R.id.step2result); this.step3result = (TextView)findViewById(R.id.step3result); startActivityForResult(new Intent(Wizard.INTENT_STEP1), STEP1); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case STEP1: this.step1result.setText(data.getStringExtra("STEP1RESULT")); startActivityForResult(new Intent(Wizard.INTENT_STEP2), STEP2); break; case STEP2: this.step2result.setText(data.getStringExtra("STEP2RESULT")); startActivityForResult(new Intent(Wizard.INTENT_STEP3), STEP3); break; case STEP3: this.step3result.setText(data.getStringExtra("STEP3RESULT")); break; } }}?
public class Step1 extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.step1); Button nextStep = (Button)findViewById(R.id.goto2); nextStep.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Intent it = new Intent(); it.putExtra("STEP1RESULT", ((EditText)findViewById(R.id.step1value)).getText() .toString()); setResult(Activity.RESULT_OK, it); finish(); } }); }}?
后面的step2 step3都是一样的了
然后还有主xml
<application android:icon="@drawable/icon" android:label="@string/app_name"><activity android:name=".Wizard" android:label="@string/app_name"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><activity android:name=".Step1" android:label="Step1"><intent-filter><action android:name="com.novoda.STEP1" /><category android:name="android.intent.category.DEFAULT" /></intent-filter></activity><activity android:name=".Step2" android:label="Step2"><intent-filter><action android:name="com.novoda.STEP2" /><category android:name="android.intent.category.DEFAULT" /></intent-filter></activity><activity android:name=".Step3" android:label="Step3"><intent-filter><action android:name="com.novoda.STEP3" /><category android:name="android.intent.category.DEFAULT" /></intent-filter></activity></application><uses-sdk android:minSdkVersion="7" /></manifest>
?