package exam.Input;
import android.app.*;
import android.content.*;
import android.graphics.*;
import android.graphics.Paint.Style;
import android.os.*;
import android.view.*;
import android.widget.*;
import exam.AndroidExam.*;
import exam.Output.ToastTest;
public class MenuCheck extends Activity {
MyView vw;
Paint mPaint = new Paint();
int shape;
boolean color;
boolean width;
boolean fill;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyView vw = new MyView(this);
setContentView(vw);
}
protected class MyView extends View {
public MyView (Context context) {
super(context);
}
public void onDraw(Canvas canvas) {
canvas.drawColor(Color.WHITE);
mPaint.setColor(Color.BLACK);
mPaint.setStrokeWidth(5);
mPaint.setAntiAlias(true);
mPaint.setStyle(Paint.Style.STROKE);
canvas.drawCircle(80, 80, 30, mPaint);
if(color)
mPaint.setColor(Color.BLUE);
else
mPaint.setColor(Color.RED);
}
}
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menucheck,menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.color:
if(item.isChecked()){
color = true;
}
else
{
color = false;
}
return true;
}
return false;
}
}
public boolean onPrepareOptionsMenu(Menu menu) {
if(mPaint.getStrokeWidth()==10){
menu.findItem(R.id.width).setChecked(false);
} else {
menu.findItem(R.id.width).setChecked(true);
}
return true;
}
}
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/submenu1"
android:title = "submenu1">
<menu>
<group android:id="@+id/menu1"
android:checkableBehavior="all">
<item android:id="@+id/width"
android:title="width"/>
<item android:id="@+id/color"
android:title="color"/>
<item android:id="@+id/style"
android:title="width"/>
</group>
</menu>
</item>
<item android:id="@+id/submenu2"
android:title = "submenu2">
<menu>
<group android:id="@+id/menu2"
android:checkableBehavior="single">
<item android:id="@+id/rect"
android:title="rectangle"/>
<item android:id="@+id/circle"
android:title="circle"/>
<item android:id="@+id/line"
android:title="line"/>
</group>
</menu>
</item>
</menu>
제가 연습하는 건 메뉴를 눌렀을때 옵션메뉴가 나오구
옵션메뉴를 눌렀을때 서브메뉴가 나오는데
서브메뉴에는 체크박스와 라디오버튼을 누를 수 있게 만들어보려합니다.
예를들어서 color를 누르면 색이 바뀌는 거구여
width를 누르면 도형의 굵기가 바뀌는 이런 식의 앱입니다.
일단 제가 지금 막히는부분은 color를 클릭햇을때 색이바뀌어야하는데 안바뀝니다.
다른 서브메뉴들이야 비슷하게 코드를 짤 수 있기때문에 일단 color한개를 해보았는데 정말 안됩니다.
3일밤샘해서 하는데두.. 정말 미치겟습니다. 오류를 찾아주세요~~




메뉴를 클릭하셨을때 color와 같은 상태값을
바꾸시는건 알게습니다 ㅎㅎ
MyView 인스턴스에 onDraw 메소드를
명시적으로 호출해 보시는건 어떨까요??