Android启动活动以获取结果
我对android完全是个新手。我想将用户输入从一个活动发送到另一个活动,当我输入文本并点击sendText按钮时,我返回到主活动,但在文本视图中,结果应该是“null”。已经看过其他答案,但仍然没有乐趣 主活动,接收来自其他活动的用户输入Android启动活动以获取结果,android,Android,我对android完全是个新手。我想将用户输入从一个活动发送到另一个活动,当我输入文本并点击sendText按钮时,我返回到主活动,但在文本视图中,结果应该是“null”。已经看过其他答案,但仍然没有乐趣 主活动,接收来自其他活动的用户输入 TextView textView1; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceStat
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();
}
}
}Intent类携带所有额外数据,并使用HashMap结构查找具有给定id的项目。您的问题是,您在两个不同的Intent类中为每个项目设置了不同的id,例如: 在相对活动中:
intentmessage.putExtra("Name:",name);
您的id是“姓名:”
在您的主要活动中:
String name = data.getStringExtra("name");
你的身份证是“姓名”
确保您在intent类中使用的两个id相同,并且可以正常工作。在两个类中使用的密钥似乎不匹配 使用
intentmessage.putExtra(“name”,name)代码>
而不是intentmessage.putExtra(“名称:”,名称)
问题在于,当您创建键串时,请看一看
//put the message in Intent
intentmessage.putExtra("Name:",name);
intentmessage.putExtra("Email:",email);
intentmessage.putExtra("Phone:",phone);
在这个putExtra
上,keyString
是Name:
,Email:
和Phone:
,您正试图用这个keyString
获取字符串
// fetch the message String
String name = data.getStringExtra("name");
String email = data.getStringExtra("email");
String phone = data.getStringExtra("phone");
您正在寻找一个名称
作为键串
,但上面没有任何内容,因为您决定将其命名为名称:
看看
字符串为:
附加数据的名称,带有包前缀
其值为:
捆绑数据值
希望有帮助。更改您的ExplicitRelativeLayout活动代码::
设置结果(结果正常,意图)李>
在两个活动上保持相同的键
你能贴日志吗?看看我的答案看看你的答案:)你应该把给你最好解释的答案标记为正确答案,而不是第一个,只是说:我标记了解决我问题的答案,@Remees M answer,:)快乐。。如果答案对您有帮助,请接受。感谢所有帮助:)
// fetch the message String
String name = data.getStringExtra("name");
String email = data.getStringExtra("email");
String phone = data.getStringExtra("phone");
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();
}