如何在不使用任何观看的情况下从主要活动访问自定义活动

时间:2015-09-01 04:20:11

标签: android

问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>

2 个答案:

答案 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,也可以在按钮单击和引用中编写。因为您在自定义视图中引用了一个按钮,所以在此之前您必须为该活动设置布局,然后引用该布局中的元素。