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;
}
}
}