[英]In Android: How can i send the result of from OnPostExecute() to other activity?
[英]How I can fill a ListView in Android from a other Activity?
我想構建一個Android應用程序並為此使用Eclipse。 這是我的第一個應用程序,我已經在http://developer.android.com上閱讀了如何創建應用程序及更多內容。
對我的應用:
我使用三個活動。
第一次活動主要。 在第二個活動中,我可以輸入一個字符串並有一個按鈕。 在我的第三個Activity上,我有一個ListView但它為空。 如果我單擊Button的第二個Activity,我希望將字符串發送到第三個Activity的ListView。
另一個問題是如何在Android應用程序中保存信息。 我可以使用數據庫還是正確的方法? 我想保存列表視圖,如果我從主活動中打開該活動,我想查看帶有信息的列表視圖。
我的代碼:
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;
}
}
使用以下代碼從意圖包中獲取字符串。
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;
}
}
有關永久性存儲問題,請參考此鏈接 。
您可以使用以下意圖將數據從一個活動傳遞到另一個活動,
在按鈕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
}
您可以將數據存儲在數據庫或sharedpreference中。 這取決於您的需求。 如果要將大量數據存儲為大量人員詳細信息,則可以使用SQLite存儲在數據庫中,或者如果要存儲諸如登錄詳細信息之類的較小數據,則可以存儲在SharedPreferences中。
將數據庫和SharedPreferences的鏈接引用為
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.