2012年7月30日 星期一

在Intent間傳遞2個不同元件的值

在Intent間傳遞2個不同元件的值,並且設定可以清除EditText


主程式
public class MainActivity extends Activity {
     private EditText name;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       
        Spinner spinner=(Spinner)findViewById(R.id.spinner);
        //建立一個Adapter物件來放置下拉式選單物件
        ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,new String[]{"國營","民營","股份有限公司","SOHO"});
       //選擇下拉式選單樣式
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
       
        //EditText
        name=(EditText)findViewById(R.id.username);
        //next Activity
        Button next_btn=(Button)findViewById(R.id.next);
        next_btn.setOnClickListener(ret_btn);
        //Button event
        Button button=(Button)findViewById(R.id.clear);
        button.setOnClickListener(bc);
       
       
    } 
    //rec_btn
    private OnClickListener ret_btn=new OnClickListener(){
                    
                @Override
                public void onClick(View v) {
                        // TODO Auto-generated method stub
                        //page透過Intent通知系統框架
                        Intent intent=new Intent();
                        //指定要呼叫的Activity class
                        intent.setClass(MainActivity.this,Report.class);
                        //建立Bundle物件
                        Bundle bundle=new Bundle();
                        //將附加的訊息儲存在Bundle
                        bundle.putString("username",((EditText)findViewById( R.id.username)).getText().toString());
                        bundle.putString("spinner",((Spinner)findViewById(R.id.spinner)).getSelectedItem().toString());
                        //Bundle指定到Intent
                        intent.putExtras(bundle);
                        //呼叫新的Activity
                        startActivity(intent);
                        // 不結束原先的 Activity Class
            // 這樣按返回鍵時, 就可以回到這個 Activity
            //RadioActivity.this.finish();

                }
           
    };
    private OnClickListener bc=new OnClickListener(){

                @Override
                public void onClick(View arg0) {
                        // TODO Auto-generated method stub
               name.setText("");
                }
     };
       
}

下一個Intent
public class Report extends Activity {
        private TextView name;
        /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.report);
       
        //TextView name
         name=(TextView)findViewById(R.id.show);
        
         //取得前一個Activity傳過來的Bundle物件
         Bundle nameb = this.getIntent().getExtras();
         Bundle namec = this.getIntent().getExtras();
       // 取得的Bundle 中的資料設定
         String result = nameb.getString("username");
         String resultA = namec.getString("spinner");
       // 顯示結果    
         name.setText("你的帳號是:"+result+",你的單位是:"+resultA); 
   }
}






沒有留言:

張貼留言