ここは私の最初のクエストです。申し訳ありません。 私の割り当てはアンドロイドで電話帳を作成することです。私はとても怒っていて、欲求不満で、本当に怒っています。私はそれをどうやって行うのか分かりません。アンドロイドの電話帳
だから私は最初に非常に単純なアプリを作ることにしました。
私はmainActivityを持っているとしましょう。そこにEditTextがあります。私はいくつかの文字列を入力します。それから私はボタンを押してアクティビティ2を見ます。私はmainActivityに戻るためにボタンを押します、そして、私は前に入力された文字列を表すTextViewを見たいと思います。 問題は、その文字列がnullである(( mainActivityが私の変数を一時停止する前に、私の変数が保存されません?私はそれらを保存することができますどのように ?
同じと思う帳アプリに連絡することを起こる。私は新しい連絡先を作成し、それを渡します目的に、バックMainActivityに行くが、連絡先のArrayListには、新しい連絡先を持っている。残りのデータが失われた(
MainActivity:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
TextView txtsavedValue;
EditText edtInput;
Button btnTo2;
String string, str;
int integer1;
String LOG_TAG = MainActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
btnTo2 = (Button) findViewById(R.id.btnSendTo2);
btnTo2.setOnClickListener(this);
txtsavedValue = (TextView) findViewById(R.id.txtSavedValue);
edtInput = (EditText) findViewById(R.id.editTextInput);
if (savedInstanceState != null) {
string = savedInstanceState.getString("mykey");
Log.v(LOG_TAG, string);
txtsavedValue.setText(string);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onClick(View view) {
string = (edtInput.getText().toString());
Log.v(LOG_TAG, string);
Intent intent = new Intent(this, Main2Activity.class);
startActivity(intent);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putString("mykey", string);
super.onSaveInstanceState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
Log.v(LOG_TAG, "truuue");
string = savedInstanceState.getString("mykey");
txtsavedValue.setText(string);
}
@Override
protected void onResume() {
super.onResume();
if (string != null) {
Log.v(LOG_TAG, string);
txtsavedValue.setText(string);
} else Log.v(LOG_TAG, "nulll");
}
}
Main2Activity:あなたがボタンを押すと
public class Main2Activity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Button b = (Button) findViewById(R.id.btnTo1);
b.setOnClickListener(this);
}
@Override
public void onClick(View view) {
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
}
}
もっと明確にコードする必要があります。特にロギングでは、ログを有効にして、コードがどのように流れるかを識別するのに役立つ情報を提供します。 – JoxTraex