我想构建一个Android应用程序并使用Eclipse。这是我的第一个应用程序,我已阅读http://developer.android.com如何创建应用程序等等。
到我的Appliation:
我使用三个活动。
第一活动是主要活动。在第二个Activity上我可以输入一个字符串并有一个Button。在我的第三个Activity上,我有一个ListView但它是空的。如果我单击Button的第二个Activity,我希望该字符串将被发送到第三个Activity上的ListView。
另一个问题是我如何在Android应用程序中保存信息。我可以使用数据库还是正确的方法。我想要保存列表视图,如果我从主要活动中打开活动,我想查看带有信息的列表视图。
mycode的:
FirstActivity:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
public void createPlan(View view)
{
Intent intent = new Intent(this,CreateActivity.class);
startActivity(intent);
}
}
第二项活动:
public class CreateActivity extends Activity {
public final static String ListViewMessage = "de.linde.KSDILLPlan";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_create);
FillSpinnerViews();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.test, menu);
return true;
}
public void FillSpinnerViews()
{
Spinner spinner = (Spinner)findViewById(R.id.spinner2);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.daysArray, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
Spinner Spinner2 = (Spinner)findViewById(R.id.spinner1);
ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource(this, R.array.zeitArray, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner2.setAdapter(adapter2);
}
public void createPlan(View view)
{
String PlanName;
//String StundenZahl;
//String Wochentag;
//Boolean doppelstunde;
Intent intent = new Intent(this,OpenActivity.class);
EditText planName = (EditText)findViewById(R.id.editText1);
PlanName = planName.getText().toString();
intent.putExtra(ListViewMessage, PlanName);
startActivity(intent);
}
第三项活动:ListView
public class OpenActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_open);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_open2, menu);
return true;
}
}
答案 0 :(得分:1)
使用以下代码从intent的包中获取字符串。
public class OpenActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_open);
String text = getIntent().getStringExtra( CreateActivity.ListViewMessage );
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_open2, menu);
return true;
}
}
请参阅此link以获取持久存储问题。
答案 1 :(得分:1)
您可以使用intent将数据从一个活动传递到另一个活动,如下所示,
按钮onclick中的第二个活动,
Intent in=new Intent(currentclass.this,nextactivity.class);
in.putExtras("value_name",value);
startActivity(in);
finish();
在第三项活动中,
If(getIntent().getExtras!=null)
{
String msg=getIntent().getStringExtra("value_name"); // value_name is the attribute given in second activity
}
您可以将数据存储在数据库或共享首选项中。这取决于你的需求。 如果要将批量数据存储为大量人员详细信息,可以使用SQLite存储在数据库中,或者如果要存储可以存储在SharedPreferences中的登录详细信息等小数据。
请参阅数据库和SharedPreferences的链接