将多个意图从一个活动发送到另一个活动
我对android非常陌生,我正在尝试将用户输入的数据(他们的名字)发送到另一个活动。过去,我可以使用Intent在活动之间发送单行代码,但是我无法解决如何向两个不同的TextView发送两个不同的字符串。
这是到目前为止我的MainActivity代码:
package com.example.game;
import android.content.Intent;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.Button;
import android.widget.EditText;
import android.view.View;
import android.widget.AutoCompleteTextView;
public class MainActivity extends Activity {
public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
sendNames();
sendNames2();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void sendNames() {
//sends player1's name to mainGame
Intent intent = new Intent (this, MainGame.class);
EditText player1 = (EditText) findViewById(R.id.player1);
String message = player1.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}//sends player2's name to mainGame
public void sendNames2(){
Intent intent2 = new Intent(this, MainGame.class);
EditText player2 = (EditText) findViewById(R.id.player2);
String message2 = player2.getText().toString();
intent2.putExtra(EXTRA_MESSAGE, message2);
startActivity(intent2);
}
}
我第二项活动MainGame的代码:
package com.example.game;
import android.content.Intent;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.annotation.SuppressLint;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;
import android.annotation.TargetApi;
import android.os.Build;
import android.widget.TextView;
public class MainGame extends Activity {
@SuppressLint("NewAPI")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game);
//retrives player1's name
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
TextView name1 = (TextView) findViewById(R.id.name1);
name1.setText(message);
//retrivews player2's name
Intent intent2 = getIntent();
String message2 = intent2.getStringExtra(MainActivity.EXTRA_MESSAGE);
TextView name2 = (TextView) findViewById(R.id.name2);
name2.setText(message2);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
getActionBar().setDisplayHomeAsUpEnabled(true);
}
}
return super.onOptionsItemSelected(item);
}
}
当我运行它时,我得到了两个TextView中都为“ name2”添加的内容。我需要做些什么来改变这个?
-
当我运行它时,我得到了两个TextView中都为“ name2”输入的内容
这是因为您要
Activity
使用第二个实例创建一个新的实例Intent
。您可以通过不同的方式来做到这一点。一个方法是创建一个Intent
作为成员变量的单变量,在您的第一个函数调用中将其实例化,添加额外功能,然后在第二个方法中添加另一个额外功能,然后在startActivity
此处调用。但是同时进行所有操作可能会更容易且更具可读性。
public void sendNames() { //sends player1's name to mainGame Intent intent = new Intent (this, MainGame.class); EditText player1 = (EditText) findViewById(R.id.player1); String player1Name= player1.getText().toString(); intent.putExtra("player1Name", player1Name); EditText player2 = (EditText) findViewById(R.id.player2); String player2Name= player2.getText().toString(); intent2.putExtra("player2Name", player2Name); startActivity(intent);
只需调用此方法即可。
然后用
Intent intent = getIntent(); String name1 = intent.getStringExtra("player1Name"); TextView name1 = (TextView) findViewById(R.id.name1); name1.setText(message); String name1 = intent2.getStringExtra("player2Name"); TextView name2 = (TextView) findViewById(R.id.name2); name2.setText(name1 ;
-
如何使用意图将对象从一个Android活动发送到另一个?
2021-01-30 关注 0 浏览401 1答案
-
将变量从一个jsp发送到另一个jsp
2021-01-31 关注 0 浏览137 1答案
-
将数据从一个协议发送到另一个协议中?
2021-01-29 关注 0 浏览80 1答案
-
如何在Jmeter中将参数从一个HTTP请求发送到另一个
2021-01-31 关注 0 浏览250 1答案
-
如何使用 Intents 将对象从一个 Android Activity 发送到另一个?
2022-03-22 关注 0 浏览75 1答案
-
如何将值从json列表视图中的选定项目发送到另一个活动?
2021-01-29 关注 0 浏览116 1答案
-
将图像从一项活动发送到另一项活动
2021-01-29 关注 0 浏览82 1答案
-
将值从1个jsp发送到另一个jsp
2021-02-01 关注 0 浏览98 1答案
-
如何使用Reactjs将日历的日期状态发送到另一个日历?
2021-01-31 关注 0 浏览82 1答案
-
儿童主动、及时地将注意力从一个对象或一个活动转移到另一个对象或另一个活动中去,这是( )。
2022-05-21 关注 0 浏览14 1答案