Android编程的新手。无法在活动之间传递对象并使其可以进行parcelable。有人能告诉我问题可能是什么?我想知道逻辑是否正确。Android:在活动之间传递对象并使其可以登录
public class MainActivity extends Activity {
private Bundle MyActivityParams;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = new Intent(this, MyActivity.class);
MyActivityParams = fillInData(MyActivityParams);
intent.putExtras(MyActivityParams);
startActivity(intent, savedInstanceState);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
private Bundle fillInData(Bundle bundle){
bundle.putFloat("com.company.MyActivity.FL", 12);
bundle.putFloat("com.company.MyActivity.VH", 100);
bundle.putFloat("com.company.MyActivity.const", 1);
return bundle;
}
}
public class DisplayActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
displayData();
}
private void displayData(){
//ActivityData is from MyActivity
ActivityData data = new ActivityData(getIntent().getExtras());
}
@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, menu);
return true;
}
}
public class MyActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
displayParams();
}
private void displayParams(){
ActivityData dataBundle = new ActivityData((getIntent()).getExtras());
transfer(dataBundle);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_algorithm, menu);
return true;
}
public void transfer(ActivityData incomingdata){
startActivity(incomingdata.getIntent());
}
protected static class ActivityData{
private Bundle data;
private TextView text;
private Intent intent;
public ActivityData(Bundle bundle){
/*data = bundle;
intent = new Intent(null, DisplayActivity.class);
text = new TextView(null);*/
}
public void display(String key){
this.text.setText(data.getString(key));
//not allowed: startActivity(intent);
//not allowed either: setContentView(text);
}
public Intent getIntent() {
return intent;
}
public void setIntent(Intent intent) {
this.intent = intent;
}
public TextView getText() {
return text;
}
public void setText(TextView text) {
this.text = text;
}
public Bundle getData() {
return data;
}
public void setData(Bundle data) {
this.data = data;
}
}
}
因为你想,你正在做错误的方式对活动之间共享数据的一切在其他活动中访问一个活动方法,第二点是当你想分享非定制数据类型如String .Integer,Float ...在使用intent或bundle的应用程序之间,然后不需要实现parcelable接口。 –
运行此代码时出现任何错误? –
你没有初始化'MyActivityParams'包。初始化'MyActivityParams'捆绑包,然后在'MainActivity'活动中使用它:'Bundle MyActivityParams = new Bundle();' –