package com.misoo.ex01;import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;public class Ex01 extends Activity
{
private final int WC = LinearLayout.LayoutParams.WRAP_CONTENT;
private LinearLayout layout;
private int mColor = Color.YELLOW;
private LinearLayout.LayoutParams lParams;
static final int RG_REQUEST = 0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
lParams = new LinearLayout.LayoutParams(230, 140);
DrawView drawView= new DrawView(this);
layout.addView(drawView, lParams);
Button button = new Button(this);
button.setText("Change Color");
button.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0)
{
Intent intent = new Intent(Ex01.this, RgActivity.class);
startActivityForResult(intent, RG_REQUEST);
}
});
lParams = new LinearLayout.LayoutParams(WC, WC);
layout.addView(button, lParams);
setContentView(layout);
}
public int getColor()
{
return mColor;
}
@Override
protected void onActivityResult(int requestCode,
int resultCode, Intent data)
{
if (requestCode == RG_REQUEST)
{
if (resultCode == RESULT_CANCELED)
{
setTitle("Canceled...");
}
else if (resultCode == RESULT_OK)
{
String dataString = (String) data.getCharSequenceExtra("DataKey");
setTitle(dataString);
if (dataString.contains("Y"))
{
mColor = Color.YELLOW;
}
else
{
mColor = Color.BLUE;
}
}
}
}
}
package com.misoo.ex01;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;public class RgActivity extends Activity implements OnCheckedChangeListener
{
private final int WC = RadioGroup.LayoutParams.WRAP_CONTENT;
private RadioGroup radioGroup;
RadioGroup.LayoutParams rParams;
@Override
public void onCreate(Bundle bundle)
{
super.onCreate(bundle);
radioGroup = new RadioGroup(this);
rParams = new RadioGroup.LayoutParams(WC, WC);
radioGroup.setOrientation(RadioGroup.VERTICAL);
radioGroup.setLayoutParams(rParams);
radioGroup.setOnCheckedChangeListener(this);
RadioButton radioButton = new RadioButton(this);
radioButton.setText("Yellow");
radioButton.setId(1001);
rParams = new RadioGroup.LayoutParams(WC, WC);
radioGroup.addView(radioButton, rParams);
RadioButton radioButton1 = new RadioButton(this);
radioButton1.setText("Blue");
radioButton1.setId(1002);
rParams = new RadioGroup.LayoutParams(WC, WC);
radioGroup.addView(radioButton1, rParams);
setContentView(radioGroup);
}
public void onCheckedChanged(RadioGroup arg0, int arg1)
{
String cc;
if (arg0.getCheckedRadioButtonId() == 1001)
{
cc = "Y";
}
else
{
cc = "B";
}
Bundle bundle = new Bundle();
bundle.putString("DataKey", cc);
Intent intent = new Intent();
intent.putExtras(bundle);
setResult(RESULT_OK, intent);
finish();
}
}
package com.misoo.ex01;import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;public class DrawView extends View
{
private Paint paint;
private Context context;
public DrawView (Context context)
{
super(context);
this.context = context;
paint = new Paint();
}
@Override
protected void onDraw(Canvas canvas)
{
Ex01 ex01 = (Ex01) context;
paint.setColor(ex01.getColor());
canvas.drawRect(10, 10, 100, 100, paint);
paint.setColor(Color.GREEN);
paint.setStrokeWidth(4);
paint.setStrokeCap(Paint.Cap.ROUND);
canvas.drawLine(10, 55, 100, 55, paint);
canvas.drawLine(55, 10, 55, 100, paint);
paint.setColor(Color.RED);
canvas.drawRect(50, 50 ,60, 60, paint);
}
}按照一本教材写的代码。运行后只出现如下界面,点changecolor出错。 Console没有报具体错误
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;public class Ex01 extends Activity
{
private final int WC = LinearLayout.LayoutParams.WRAP_CONTENT;
private LinearLayout layout;
private int mColor = Color.YELLOW;
private LinearLayout.LayoutParams lParams;
static final int RG_REQUEST = 0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
lParams = new LinearLayout.LayoutParams(230, 140);
DrawView drawView= new DrawView(this);
layout.addView(drawView, lParams);
Button button = new Button(this);
button.setText("Change Color");
button.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0)
{
Intent intent = new Intent(Ex01.this, RgActivity.class);
startActivityForResult(intent, RG_REQUEST);
}
});
lParams = new LinearLayout.LayoutParams(WC, WC);
layout.addView(button, lParams);
setContentView(layout);
}
public int getColor()
{
return mColor;
}
@Override
protected void onActivityResult(int requestCode,
int resultCode, Intent data)
{
if (requestCode == RG_REQUEST)
{
if (resultCode == RESULT_CANCELED)
{
setTitle("Canceled...");
}
else if (resultCode == RESULT_OK)
{
String dataString = (String) data.getCharSequenceExtra("DataKey");
setTitle(dataString);
if (dataString.contains("Y"))
{
mColor = Color.YELLOW;
}
else
{
mColor = Color.BLUE;
}
}
}
}
}
package com.misoo.ex01;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;public class RgActivity extends Activity implements OnCheckedChangeListener
{
private final int WC = RadioGroup.LayoutParams.WRAP_CONTENT;
private RadioGroup radioGroup;
RadioGroup.LayoutParams rParams;
@Override
public void onCreate(Bundle bundle)
{
super.onCreate(bundle);
radioGroup = new RadioGroup(this);
rParams = new RadioGroup.LayoutParams(WC, WC);
radioGroup.setOrientation(RadioGroup.VERTICAL);
radioGroup.setLayoutParams(rParams);
radioGroup.setOnCheckedChangeListener(this);
RadioButton radioButton = new RadioButton(this);
radioButton.setText("Yellow");
radioButton.setId(1001);
rParams = new RadioGroup.LayoutParams(WC, WC);
radioGroup.addView(radioButton, rParams);
RadioButton radioButton1 = new RadioButton(this);
radioButton1.setText("Blue");
radioButton1.setId(1002);
rParams = new RadioGroup.LayoutParams(WC, WC);
radioGroup.addView(radioButton1, rParams);
setContentView(radioGroup);
}
public void onCheckedChanged(RadioGroup arg0, int arg1)
{
String cc;
if (arg0.getCheckedRadioButtonId() == 1001)
{
cc = "Y";
}
else
{
cc = "B";
}
Bundle bundle = new Bundle();
bundle.putString("DataKey", cc);
Intent intent = new Intent();
intent.putExtras(bundle);
setResult(RESULT_OK, intent);
finish();
}
}
package com.misoo.ex01;import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;public class DrawView extends View
{
private Paint paint;
private Context context;
public DrawView (Context context)
{
super(context);
this.context = context;
paint = new Paint();
}
@Override
protected void onDraw(Canvas canvas)
{
Ex01 ex01 = (Ex01) context;
paint.setColor(ex01.getColor());
canvas.drawRect(10, 10, 100, 100, paint);
paint.setColor(Color.GREEN);
paint.setStrokeWidth(4);
paint.setStrokeCap(Paint.Cap.ROUND);
canvas.drawLine(10, 55, 100, 55, paint);
canvas.drawLine(55, 10, 55, 100, paint);
paint.setColor(Color.RED);
canvas.drawRect(50, 50 ,60, 60, paint);
}
}按照一本教材写的代码。运行后只出现如下界面,点changecolor出错。 Console没有报具体错误
有问题记得看logcat 用Eclipse来Debug
贴一堆代码上来 我还真的没耐心看