나는 android에서 초보자입니다. 나는 첫 번째 활동에서 하나의 활동을 호출하는 간단한 코드를 가지고 있으며 두 번째 활동에는 두 번째 활동이 완료되고 첫 번째 활동이 시작되는 버튼이 있습니다. 첫 번째 작업 (onResume은 항상 호출 됨)에서 onCreate 메서드가 호출되지 않으므로 onCreate 메서드를 첫 번째 작업에서 호출 할 수 있습니까? 매니페스트 파일에서 일부 항목을 편집 했습니까? 다음두 번째 활동 완료 후 첫 번째 활동에서 onCreate 메소드를 호출하는 방법 (첫 번째 활동에서 호출 됨)
내 코드
public class Activity1 extends Activity {
/** Called when the activity is first created. */
TextView mTextView ;
Button b1;
static int count=0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mTextView = (TextView) findViewById(R.id.textView2);
if (savedInstanceState == null) {
mTextView.setText("Welcome to HelloAndroid!");
} else {
mTextView.setText("Welcome Back!");
System.out.println("count------>"+ count);
}
final Intent i = new Intent(this,activity2.class);
b1 = (Button) findViewById(R.id.button1);
b1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
startActivity(i);
}
});
}
@Override
public void onResume()
{
super.onResume();
System.out.println("inside Resume");
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putBoolean("MyBoolean", true);
savedInstanceState.putDouble("myDouble", 1.9);
savedInstanceState.putInt("MyInt", 1);
savedInstanceState.putString("MyString", "Welcome back to Android");
count++;
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
boolean myBoolean = savedInstanceState.getBoolean("MyBoolean");
double myDouble = savedInstanceState.getDouble("myDouble");
System.out.println("MyBoolean"+ myBoolean);
System.out.println("myDouble"+ myDouble);
}
}
이며, 여기
public class activity2 extends Activity{
TextView textview;
Button b1;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);
textview = (TextView) findViewById(R.id.textView1);
textview.setText("in activity2");
b1 = (Button) findViewById(R.id.button1);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
}
어떤 일 activiy 나에게 감사를 도와주세요 1에 의해 호출되는 제 2 차 활동이다! 첫 번째 활동에서
이봐, 당신이 올바른지 ... 고맙습니다! 하지만 내가 할 때 onSaveInstanceState이 실행되지 않습니다. 그래서 나는 첫 번째 활동에서 "finish()"를 제거하고 onSaveInstanceState가 실행됩니다. onCreate alwyas의 "savedInstanceState"는 null로 남습니다. "savedInstanceState"가 2 번째 activity.Can에서 돌아 왔을 때 null이 아니어야합니다. 제발 도와 주실 수 있습니까? –
@ user1491193 내 편집 내용을 보시겠습니까? 텍스트보기 용으로 만 텍스트를 설정하고 싶다면 ...? – hasanghaforian
@ hasanghaforian : 나는 그 텍스트를 보여주고 싶지 않습니다. ("Welcome back!"). 그 savedInstanceState를 사용하고 싶습니다. 도와 주실 래요? –