마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

뒤로가기 버튼을눌러서 바로 이전화면으로 돌아가는거 어떻게하나요?

0 추천
package com.example.viewtest;

import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.Display;
import android.view.Menu;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.LinearLayout;
import android.widget.Toast;

public class MainActivity extends Activity {
 
	LinearLayout linear;
	View view;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
		setContentView(R.layout.main);
		linear = (LinearLayout) findViewById(R.id.rl_background);
		view =findViewById(R.id.rl_background);
	 }
	class MyView extends View{
		int width,height;
		public MyView(Context context){
			super(context);
			Display display=((WindowManager)context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
			width=display.getWidth();
			height=display.getHeight(); 
			
		}
		
		public void onDraw(Canvas canvas){
			Paint paint=new Paint();
			paint.setColor(Color.argb(255,255,0,0)); 
			paint.setTextSize(20);
			canvas.drawText("해상도="+width+"x"+height,80,200,paint); 
			
		}
	}
	
	
	public void myClickListener(View target)
	
	{
		Toast.makeText(getApplicationContext(), "버튼이 눌러졌습니다", Toast.LENGTH_SHORT).show();
		view.setBackgroundColor(0xffff0000); 
		
	}
	
	public void myClickListener1(View target)
	
	{
		Toast.makeText(getApplicationContext(), "버튼이 눌러졌습니다", Toast.LENGTH_SHORT).show();
		linear.setBackgroundColor(Color.WHITE);
		 
		
	}
	public void myClickListenergreen(View target)
	
	{
		Toast.makeText(getApplicationContext(), "버튼이 눌러졌습니다", Toast.LENGTH_SHORT).show();
		linear.setBackgroundColor(Color.GREEN);
		 
		
	}	public void myClickListenerblue(View target)
	
	{
		Toast.makeText(getApplicationContext(), "버튼이 눌러졌습니다", Toast.LENGTH_SHORT).show();
		linear.setBackgroundColor(Color.BLUE);
		 
		
	}	public void myClickListenerblack(View target)
	
	{
		Toast.makeText(getApplicationContext(), "버튼이 눌러졌습니다", Toast.LENGTH_SHORT).show();
		getWindow().getDecorView().setBackgroundColor(Color.argb(255,0,0,0));   
		
		setContentView(new MyView(this));
		
		
	}	
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

xml에는 버튼 순서대로 있는거밖에 없습니다.

지금 실행되는게 

검은색나오게하는 버튼누르면 화면 전체가 FULL screen이 검은색으로 됩니다. 

문제는 버튼도 사라지고 화면전체가 까만색으로 나오니깐 빨강이나 파랑으로 바꾸고싶을때 누를 버튼이 안보이는겁니다.

바로 이전의 화면으로 돌아가고싶은데

어떻게해야되나요?>

어떤 명령어쪽 공부해야되나요? 

익명사용자 님이 2013년 10월 29일 질문

1개의 답변

0 추천
 
채택된 답변
데코뷰의 색상을 바꾸지말고 위의 다른 메소드처럼 레이아웃의 배경색을 바꾸세요

linear.setBackgroundColor(Color.Black);
q1212 (26,020 포인트) 님이 2013년 10월 29일 답변
제가 할려는게 각각의 버튼을 눌렀을때
화면 전체가 빨,초,파 등 전체색이 바뀌게 할려고하거든요.
그런데 linear.setbackgroundcolor(color.black) 이런식으로하면
버튼이 여전히 보여서요.
그래서
View Myview 를 이용한겁니다.
그런데 linear.setbackground는 myview에 영향을 안주더라구요.
그래서 지금 일단  블랙버튼 눌렀을떄 전체화면이 블랙이나오니까
뒤로가기 버튼으로 눌러서 바로 이전화면 돌아간뒤 다시 다른버튼 선택하려는 방법을 생각중입니다.
activity하나 더 만드시고요
그 activity에서 MyView를 사용하는게 좋을듯한데요. 그러면 back키 누르면 원하는 동작이 되고요.

그게 아니면 아래 코드를 추가해보세요.
(좋은 방법은 아니니까 왜 이렇게 되는지 한번 연구해보세요)
    @Override
    public void onBackPressed() {
        setContentView(R.layout.main);
    }
액티비티를 만드시는게 좋을듯 싶네요
...