그것은 나의 첫 번째 모험입니다. 바보 같은 일은 미안해. 내 과제는 android에서 전화 번호부를 만드는 것입니다. 나는 너무 화가 나서 좌절감을 느끼고 화가났다. 어떻게해야할지 모르겠다.안드로이드 전화 번호부
그래서 처음에는 매우 간단한 앱을 만들기로 결정했습니다.
나는 mainActivity가 있다고 가정 해 보겠습니다. 거기에 EditText가 있습니다, 나는 약간의 문자열을 입력합니다. 그런 다음 버튼을 누르고 활동 2를 봅니다. mainActivity로 돌아가려면 버튼을 누르고 전에 입력 한 문자열을 나타내는 TextView를보고 싶습니다. 문제는 그 문자열 (mainActivity 전에 내 변수는 저장되지 않습니다, 내 변수를 일시 정지? 를 내가 저장할 수 있습니까?
같은 생각이 책 응용 프로그램을 문의하는 일이. 나는 새 연락처를 만들 (널 (null)입니다, 그것을 통과 의도에, 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