탭 액티비티로 5개의 탭을 만들어서,
첫번째 탭 터치시 TabHost_FifthTab --> SettingPage 에서 프로필 터치 시 --> Setting_Profile 이렇게 화면전환이 되는데요
문제는 프로필 수정 페이지에서
저장 / 취소 버튼을 누르면 인텐트는 안되고 토스트만 떠서요ㅠ_ㅠ
SettingPage에서 인텐트 할 때랑 동일한 소스인데도 왜 안되는지 도무지 모르겠어요.
에러도 안뜨고, 로그캣에 아무것도안뜨고 그저 버튼누르면 인텐트는 안되고 토스트만 떠서요!
제발 답변 부탁드릴게요!! ㅠ_ㅠ
TabHost_FifthTab
package exam.TabHost;
import java.util.ArrayList;
import android.app.ActivityGroup;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
public class TabHost_FifthTab extends ActivityGroup {
public static TabHost_FifthTab FifthTabGroup;
private ArrayList<View> history;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
history = new ArrayList<View>();
FifthTabGroup = this;
Intent intent = new Intent(TabHost_FifthTab.this, SettingTab.class);
View view = getLocalActivityManager().startActivity("SettingTab", intent
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();
replaceView(view);
}
// 새로운 Level의 Activity를 추가하는 경우
public void replaceView(View view) {
history.add(view);
setContentView(view);
}
// Back Key가 눌러졌을 경우에 대한 처리
public void back() {
if(history.size() > 0) {
history.remove(history.size()-1);
if(history.size() == 0)
finish();
else
setContentView(history.get(history.size()-1));
}
else
{
finish();
}
}
// Back Key에 대한 Event Handler
@Override
public void onBackPressed() {
FifthTabGroup.back();
return ;
}
}
SettingPage
package exam.TabHost;
import exam.TabHost.R;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class SettingTab extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.setting_page);
Button profile_btn = (Button)findViewById(R.id.profile);
profile_btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
// 프로필 설정
Intent intent = new Intent(getParent(), Set_Profile.class);
startActivity(intent);
}
});
Button logout_btn = (Button)findViewById(R.id.logout);
logout_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View view) {
//회원탈퇴
new AlertDialog.Builder(getParent())
.setTitle("오손도손 탈퇴")
.setMessage("정말 탈퇴하시겠습니까?")
.setIcon(R.drawable.popup_icon_home)
.setPositiveButton("확인", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int ok_btn) {
// 탈퇴하기
Intent intent = new Intent(getParent(), FirstTab_2.class);
startActivity(intent);
}
})
.setNegativeButton("취소", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int cancel_btn) {
//탈퇴 취소
Intent intent = new Intent(getParent(), SettingTab.class);
View view = TabHost_FifthTab.FifthTabGroup.getLocalActivityManager()
.startActivity("SettingTab", intent
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();
TabHost_FifthTab.FifthTabGroup.replaceView(view);
}
})
.show();
}
});
}
}
Setting_Profile
package exam.TabHost;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class Set_Profile extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.profile);
Button profile_save_btn = (Button)findViewById(R.id.profile_save);
profile_save_btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// profile 저장
Intent intent = new Intent(Set_Profile.this, SettingTab.class);
View view = TabHost_FifthTab.FifthTabGroup.getLocalActivityManager()
.startActivity("SettingTab", intent
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();
TabHost_FifthTab.FifthTabGroup.replaceView(view);
Toast toast = Toast.makeText(getApplicationContext(), "프로필이 수정되었습니다.", Toast.LENGTH_SHORT);
toast.show();
}
});
Button profile_cancel_btn = (Button)findViewById(R.id.profile_cancel);
profile_cancel_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// profile 저장 취소
Toast toast = Toast.makeText(getApplicationContext(), "프로필이 수정되었습니다.", Toast.LENGTH_SHORT);
toast.show();
Intent intent = new Intent(Set_Profile.this, FirstTab_2.class);
View view = TabHost_FifthTab.FifthTabGroup.getLocalActivityManager()
.startActivity("FirstTab_2", intent
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();
TabHost_FifthTab.FifthTabGroup.replaceView(view);
바로 이부분에서 토스트만 뜨고 인텐트는 이루어지지가 않아요!! ㅠㅠ
}
});
}
}
답변 부탁드릴게요!! ㅠㅠ



