2015-11-18 57 views
2

我是一个总的新手到Android。我想将用户输入从一个活动发送到另一个活动,当我输入文本并点击sendText按钮时,我返回主活动,但在结果应该是textview中出现'null'。已经看过其他答案,但仍然没有快乐!Android的启动活动的结果

主要业务,来自其他活动

TextView textView1; 
    public class MainActivity extends Activity { 

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

    textView1 = (TextView) findViewById(R.id.textView1); 


    } 
    public void relativeLayout(View view) 
    { 
    // Create The Intent and Start The Activity to get The message 

     Intent relativeLayoutIntent=new Intent(MainActivity.this,ExplicitRelativeLayout.class);   
    startActivityForResult(relativeLayoutIntent, 2); 
    } 
    @Override 
    protected void onActivityResult(int requestCode,int resultCode,Intent data)     
    { 
     super.onActivityResult(requestCode, resultCode, data); 

    // check if the request code is same as what is passed. here it is 2 

    if(requestCode==2) 
    { 
     if(null!=data) 
     { 
      // fetch the message String 
      String name = data.getStringExtra("name"); 
      String email = data.getStringExtra("email"); 
      String phone = data.getStringExtra("phone"); 

      // Set the message string in textView 
      textView1.setText("Name: " + name + "" + "\n" + "Email: " + email + " " + "\n" +"Phone:" + phone); 
     } 

RelativeLayout的活动,用户输入文本接收用户输入

public class ExplicitRelativeLayout extends AppCompatActivity { 


    EditText setName; 
    EditText setEmail; 
    EditText setPhone; 


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

    // Get the reference of Edit Text 
    setName = (EditText) findViewById(R.id.setName); 
    setEmail = (EditText) findViewById(R.id.setEmail); 
    setPhone = (EditText) findViewById(R.id.setPhone); 
} 


public void sendText (View views) 
{ 
    // get the Entered message 
    String name=setName.getText().toString(); 
    String email= setEmail.getText().toString(); 
    String phone=setPhone.getText().toString(); 
    Intent intentmessage = new Intent(); 

    // put the message in Intent 
    intentmessage.putExtra("Name:",name); 
    intentmessage.putExtra("Email:",email); 
    intentmessage.putExtra("Phone:",phone); 

    // Set The Result in Intent 
    setResult(2,intentmessage); 

    // finish The activity 
    finish(); 
} 
} 
+0

你能后的logcat的? –

+0

看到我的回答,看到你的isue :) –

+0

你应该给予你最好的解释,而不是第一个答案,只是说:P^ –

回答

1

似乎有你在两类

使用

使用intentmessage.putExtra("name",name);

而不是intentmessage.putExtra("Name:",name);

+1

@ Remees,谢谢你,它无法看到它! – user1958789

+0

:) enjoyy ..请接受答案,如果它帮助你。 –

0
Activity B: 
@Override 
public void onBackPressed() { 
// TODO Auto-generated method stub 

//data send to Activity B 
Intent intent = new Intent(); 
intent.putExtra("MESSAGE", strtext + "");//your msg 
setResult(2, intent); 

} 


    Activiy A: 
    @Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
super.onActivityResult(requestCode, resultCode, data); 

    String sSuName = data.getStringExtra("MESSAGE"); 

    //txtfavouratecount.setText(sSuName); 

}

+0

感谢所有的帮助:) – user1958789

1

Intent类承载所有的它是额外的数据用HashMap结构查找具有给定id的项目。你的问题是你放下不同的ID为每个项目在两个不同的意图类,例如:

在相对活性:

intentmessage.putExtra("Name:",name); 

您的ID是“姓名:”

在你主要活动:

String name = data.getStringExtra("name"); 

您的ID是“名称”。

请确保您在意图课程中使用的两个ID是相同的,并且可以正常工作。

3

的问题是在你的钥匙不匹配,当您创建keyString看看

//put the message in Intent 
intentmessage.putExtra("Name:",name); 
intentmessage.putExtra("Email:",email); 
intentmessage.putExtra("Phone:",phone); 

在此putExtrakeyStringName:Email:Phone:,而你试图用这种keyString

// fetch the message String 
String name = data.getStringExtra("name"); 
String email = data.getStringExtra("email"); 
String phone = data.getStringExtra("phone"); 

你正在寻找一个name作为keyString但并没有什么它得到的字符串,因为你决定将它Name:

就以putExtra(String name, Bundle value);

串一看就是:

额外数据的名称,包前缀。

,值是:

所述包数据值。

希望它有帮助。

0

更改ExplicitRelativeLayout活动::

  1. 的setResult的代码(RESULT_OK,意图);
  2. 两个活动都保持相同的密钥。
public void sendText (View views){ 
      // get the Entered message 
      String name=setName.getText().toString(); 
      String email= setEmail.getText().toString(); 
      String phone=setPhone.getText().toString(); 
      Intent intentmessage = new Intent(); 

      // put the message in Intent 
      intentmessage.putExtra("name:",name); 
      intentmessage.putExtra("email:",email); 
      intentmessage.putExtra("phone:",phone); 

      // Set The Result in Intent 
      setResult(RESULT_OK,intentmessage); 

      // finish The activity 
      finish(); 
     }