问1.我应该使用什么来从main_activity访问custom_view活动?
问2.布局和点击事件之间是否有任何关系?
问3.我是否需要在MyView构造函数中编写setContentView?
MainActivity
package com.easyway2win;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
public class MainActivity extends Activity {
//Button bpink;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent= new Intent(MainActivity.this,MyView.class);
startActivity(intent);
}
}
MyView的
package com.easyway2win;
import android.content.Context;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
public class MyView extends View implements OnClickListener{
public MyView(Context context) {
super(context);
bpink = (Button)findViewById(R.id.pinkColor);
bpink.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.d("Hi","Hello");
}
});
myview_activity.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/mytxtId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/mytext" />
<Button
android:id="@+id/pinkColor"
android:layout_width="wrap_content"
android:layout_height="60dp"
android:layout_alignParentLeft="true"
android:layout_below="@id/mytxtId"
android:background="@drawable/pinkcolor"
android:text="Submit" />
<Button
android:id="@+id/blueColor"
android:layout_width="wrap_content"
android:layout_height="60dp"
android:layout_below="@id/mytxtId"
android:layout_toRightOf="@id/pinkColor"
android:background="@drawable/bluecolor" />
</RelativeLayout>
答案 0 :(得分:0)
bpink = (Button)findViewById(R.id.pinkColor);
bpink.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.d("Hi","Hello");
}
});
上面的代码应该从构造函数移到onCreate
MyView
您还必须添加setContentView(R.layout.myview_activity);
,最终结果应如下所示:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.myview_activity);
bpink = (Button)findViewById(R.id.pinkColor);
bpink.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.d("Hi","Hello");
}
});
}
答案 1 :(得分:0)
A1。您可以使用意图访问另一个活动。 A2。创建活动时,它必须具有布局文件,并且您希望使用setContentView在onCreate()方法中引用它。 A3。您想在onCreate方法中编写setContentView,也可以在按钮单击和引用中编写。因为您在自定义视图中引用了一个按钮,所以在此之前您必须为该活动设置布局,然后引用该布局中的元素。