2013-04-06 90 views
1

嗨我想学习android编程,我在这里使用android教程:http://developer.android.com/training/basics/firstapp/index.html但后来我要编辑它,并添加在我自己的位和学习从他们通过使用API​​指南。发送2位数据从1活动到另一个在android

我想要做的第一次编辑是在复选框中添加一个复选框,用户可以在显示最后一个东西时检查是否会添加另一行文本。但是我不确定如何在代码中添加复选框(在主要活动中),并使其向DisplayMessageActivity发送数据,以告诉它在用户定义的另一行文本下添加另一行文本消息框,请帮忙(对不起,如果我没有解释清楚)

下面是2个activitys到目前为止的代码,如果有帮助,请与基本你的答案我已经有一段时间没有和编程Ive大麦之前使用过Java,所以我仍然在摆弄东西。

MainActivity:

package com.hyper.benshelloworld; 

import android.os.Bundle; 
import android.app.Activity; 
import android.content.Intent; 
import android.view.View; 
import android.view.Menu; 
import android.widget.CheckBox; 
import android.widget.EditText; 
/* 
* private things can be directly accessed only within the class that defines them. 
*•default (i.e., no access modifier) things can be accessed by any code in the same package as the defining class. 
*•protected is like default, except subclasses outside of the defining package can also access the member. 
*•public members are accessible to all code everywhere. 
*/ 

public class MainActivity extends Activity { 
    public static final String EXTRA_MESSAGE = "com.hyper.benshelloworld.MESSAGE"; 
    //defines the string EXTRA_MESSAGE 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.activity_main, menu); 
     return true; 
    } 
    public void sendMessage(View view){ 
     Intent intent = new Intent(this, DisplayMessageActivity.class); 
     //calls on DisplayMessageActivity.class 
     EditText editText = (EditText) findViewById(R.id.EditText); 
     //makes the text box writable in. 
     String message = editText.getText().toString(); 
     /*receives the typed message and makes it ready to be sent to the 
     * DisplayMessageActivity to be displayed*/ 
     intent.putExtra(EXTRA_MESSAGE, message); 
     /*The most common use of intents is to start new activities (screens)within 
     * an application (line 41). The extras Bundle is a way of passing data between activities. 
     * Extras are entered as key value pairs so EXTRA_MESSAGE is a key is used to identify a 
     * particular value so it can be retrieved and used by another activity. 
     */ 

     startActivity(intent); 




    } 


} 

和DisplayMessageActivity:

package com.hyper.benshelloworld; 
/* 
* private things can be directly accessed only within the class that defines them. 
*•default (i.e., no access modifier) things can be accessed by any code in the same package as the defining class. 
*•protected is like default, except subclasses outside of the defining package can also access the member. 
*•public members are accessible to all code everywhere. 
*/ 

import android.os.Build; 
import android.os.Bundle; 
import android.annotation.SuppressLint; 
import android.app.Activity; 
import android.content.Intent; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.widget.TextView; 
import android.support.v4.app.NavUtils; 
import java.lang.String; 

public class DisplayMessageActivity extends Activity { 

    @SuppressLint("NewApi") 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     Intent intent = getIntent(); 
     //receives the intent sent in the MainActivity.class 
     String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE); 
     //Uses the getStringExtra to receive the string message from MainActivity in the intent. 


     TextView textView = new TextView(this); 
     textView.setTextSize(40); 
     textView.setText(message); 
     /*Sets up a text view to show the string "message" in and 
     *sets the size of the text 
     */ 

     if (message.equals("hello world")){ 
      textView.setText("bit standard"); 
     } 

     setContentView(textView); 
     //sets the activity to be showing the textView 

     if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){ 
      /* If the android version is 3.0+, 
      * show the Up button in the action bar. 
      */ 
      getActionBar().setDisplayHomeAsUpEnabled(true); 
     } 

    } 


    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.activity_display_message, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
     case android.R.id.home: 
      // This ID represents the Home or Up button. In the case of this 
      // activity, the Up button is shown. Use NavUtils to allow users 
      // to navigate up one level in the application structure. For 
      // more details, see the Navigation pattern on Android Design: 
      // 
      // http://developer.android.com/design/patterns/navigation.html#up-vs-back 
      // 
      NavUtils.navigateUpFromSameTask(this); 
      return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 

} 

回答

0

你可以把多东西放到演员:

public class MainActivity extends Activity { 
    // ... 
    public void sendMessage(View view){ 
     Intent intent = new Intent(this, DisplayMessageActivity.class); 
     EditText editText = (EditText) findViewById(R.id.EditText); 
     String message = editText.getText().toString(); 
     Bundle bundle = new Bundle(); 
     bundle.putString(DisplayMessageActivity.KEY_BUNDLE_SOME_VALUE, message); 
     bundle.putString(DisplayMessageActivity.KEY_BUNDLE_SOME_OTHER_VALUE, someOtherValue); 
     intent.putExtras(bundle); 
     startActivity(intent); 
    } 
    // ... 
} 

在接收活动:

public class DisplayMessageActivity extends Activity { 

    public static final String KEY_BUNDLE_SOME_VALUE = "some_value"; 
    public static final String KEY_BUNDLE_SOME_OTHER_VALUE = "some_other_value"; 

    @SuppressLint("NewApi") 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     Bundle bundle = getIntent().getExtras(); 
     String string1 = ""; 
     String string2 = ""; 
     if (bundle != null) { 
      if (bundle.containsKey(KEY_BUNDLE_SOME_VALUE) { 
       string1 = bundle.getString(KEY_BUNDLE_SOME_VALUE); 
      } 
      if (bundle.containsKey(KEY_BUNDLE_SOME_OTHER_VALUE) { 
       string2 = bundle.getString(KEY_BUNDLE_SOME_OTHER_VALUE); 
      } 
     } 
     // ... 
    } 
    // ... 
} 

在绑定密钥的接收活动中添加公共常量是个好主意。这将有助于防止你通过错别字错误:)如果你决定更新它们,它们会在1点。

+0

感谢您的帮助我会尽力在 – minigregg 2013-04-06 18:57:55

相关问题