我试图用随机颜色制作牛眼,而不是圆圈,我将使用正方形。
但事实是,当我在模拟器上运行应用程序时,当他启动新活动时,它会停止响应。
这是主要活动,即启动DrawActivity的活动。
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent coiso = new Intent(this, Draw.class);
startActivity(coiso);
}
@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;
}
}
这是Draw活动,我想要开始的活动。 (它没有我想要做的事情。因为我不能,问题就在前面)
public class Draw extends View {
public Draw(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
}
}
有人能帮助我吗?对不起英文。
答案 0 :(得分:2)
你有这个
public class Draw extends View
您的课程不会延长活动
相反,您可以执行以下操作
Draw draw = new Draw(this);
setContentView(draw);
或者使用线性或相对布局,并将其放置在您想要的位置,在初始化后将Draw视图添加到布局中。
setContentView(R.layout.activity_main);
LinearLayout ll = (LinearLayout)findViewById(R.id.linearLayout);
// linear layout or relative layout in activity_main.xml.
// place the layout ahere you want along with other views
Draw draw = new Draw(this);
ll.addView(draw);
// add your customview to linearlayout
编辑:
删除此
Intent coiso = new Intent(this, Draw.class);
startActivity(coiso);
在您的activity_main.xml
中<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
// customize linear layout to your needs.
<LinearLayout
android:layout_width="200dp"
android:layout_height="200dp"
android:id="@+id/linearLayout"
android:orientation="vertical" >
</LinearLayout>
// other widgets
</RelativeLayout>
在你的onCreate
setContentView(R.layout.activity_main);
LinearLayout ll = (LinearLayout)findViewById(R.id.linearLayout);
Draw draw = new Draw(this);
ll.addView(draw);
答案 1 :(得分:0)
您的Draw
课程需要extend
Activity
而不是View
。由于您要开始新的Activity
Draw
类,这意味着这应该扩展Activity
。此外,您需要覆盖onCreate()
类中的Draw
。
如果您的Draw类是一个视图,那么我建议您使用addView()
Layout
答案 2 :(得分:0)
startActivity需要一项活动。我建议通过文档 http://developer.android.com/reference/android/app/Activity.html#startActivity(android.content.Intent)
答案 3 :(得分:0)
您需要确保更改Draw extends Activity
根据我所知,您无法进行没有布局的新活动,也没有OnCreate。
尝试创建一个扩展Activity
并在那里实现Draw的常规活动。
public class DrawActivity extends Activity {
@SuppressLint("ShowToast")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_draw);
Toast.makeText(DrawActivity.this, "YO", Toast.LENGTH_LONG);
}
从那里实现你的绘图功能。 或创建一个实现绘图需求的JAVA类,并在主屏幕中使用它。