我的应用程序的工作方式如下:用户点击撰写按钮并键入消息,然后将其发送到主活动,并在回收者视图中显示日期和时间,刷卡更像facebook或任何其他类型的社交媒体。我遇到的问题是我对Android开发相当新,并且在谷歌网站上没有看到任何东西。
答案 0 :(得分:2)
您有两种选择:
用这个" put"文件......
Intent i = new Intent(FirstScreen.this, SecondScreen.class);
String keyIdentifer = null;
i.putExtra("STRING_I_NEED", strName);
然后,要检索值,请尝试以下内容:
String newString;
if (savedInstanceState == null) {
Bundle extras = getIntent().getExtras();
if(extras == null) {
newString= null;
} else {
newString= extras.getString("STRING_I_NEED");
}
} else {
newString= (String) savedInstanceState.getSerializable("STRING_I_NEED");
}
答案 1 :(得分:1)
或者您可以尝试使用EvenBus库(有几种实现方式) 在活动中传递消息非常容易,而不仅仅是活动。这是一个简单的例子。
public class MessageEvent {
private String message;
private Date date;
public MessageEvent(String message,Date date){
this.date = date;
this.message = message;
}
public Date getDate(){
return this.date;
}
}
在活动注册听力活动
公共类MessageHandlerActivity扩展了Activity {
private EventBus bus = EventBus.getDefault();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
bus.register(this);
}
@Override
protected void onDestroy() {
// Unregister
bus.unregister(this);
super.onDestroy();
}
public void onEvent(MessageEvent event){ //随心所欲地做你想做的事 } }
并使用以下方法通知总线上的所有订户。
bus.post(event);
但请注意,在这种情况下,假定活动正在运行(已创建),例如,如果您正在使用嵌套片段或其他内容。如果您只需要将当前活动更改为新活动,则必须遵循常用方法 - 将意图与bundle一起使用以传递新活动初始化所需的一些数据。
您可以在官方文档中阅读此内容
Starting Another Activity
答案 2 :(得分:0)
SendingActivity
Intent intent = new Intent(SendingActivity.this, RecievingActivity.class);
intent.putExtra("keyName", value); // pass your values and retrieve them in the other Activity using keyName
startActivity(intent);
RecievingActivity
Bundle extras = intent.getExtras();
if(extras != null)
String data = extras.getString("keyName"); // retrieve the data using keyName
接收数据的另一种方式
String data = getIntent().getExtras().getString("AnyKeyName");
您还可以使用Parcelable