自定义view+接口回调切换activity

来源:互联网 发布:如何注销淘宝达人账号 编辑:程序博客网 时间:2024/06/07 08:22

MainActivity

private MyTextView mytextview;@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    mytextview = (MyTextView) findViewById(R.id.mytextview);    mytextview.setMysetonimageclicklistener(this);}@Overridepublic void setonimageclicklistener(View view) {    startActivity(new Intent(this,TwoActivity.class));}

Activity_Main布局

<RelativeLayout    xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="60dp"    tools:context="com.aqinga.lianxi2.MainActivity">    <com.aqinga.lianxi2.MyTextView        android:id="@+id/mytextview"        android:layout_width="match_parent"        android:layout_height="match_parent"        app:text_title="MainActivity"        app:text_size="16dp"        app:text_color="@color/colorAccent"        app:src_color="@color/colorPrimary"></com.aqinga.lianxi2.MyTextView></RelativeLayout>

MyTextView

public class MyTextView extends LinearLayout {    private TextView text;    private ImageView image;    private int srccolor;    private float size;    private int color;    private String title;    private TypedArray typedArray;    private RelativeLayout content;    public MyTextView(Context context) {        super(context);        init(context,null);    }    public MyTextView(Context context, @Nullable AttributeSet attrs) {        super(context, attrs);        init(context,attrs);    }    public void init(Context context,AttributeSet attrs){        View inflate = inflate(context, R.layout.mytextview, this);        content = (RelativeLayout) inflate.findViewById(R.id.recontent);        image = (ImageView) findViewById(R.id.image_view);        text = (TextView) findViewById(R.id.text_view);        image.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                if (mysetonimageclicklistener!=null){                    mysetonimageclicklistener.setonimageclicklistener(v);                }            }        });        if(attrs==null){            return;        }        init1(context,attrs);        selected();    }    public void init1(Context context,AttributeSet attrs){        if (attrs==null){            return;        }        typedArray = context.obtainStyledAttributes(attrs, R.styleable.MyTextView);        title = typedArray.getString(R.styleable.MyTextView_text_title);        color = typedArray.getColor(R.styleable.MyTextView_text_color, Color.GRAY);        size = typedArray.getDimension(R.styleable.MyTextView_text_size, 16);        srccolor = typedArray.getColor(R.styleable.MyTextView_src_color, Color.RED);    }    public void selected(){        content.setBackgroundColor(srccolor);        text.setText(title);        text.setTextColor(color);        text.setTextSize(size);    }    public interface onimageclicklistener{        void setonimageclicklistener(View view);    }    private onimageclicklistener mysetonimageclicklistener;    public void setMysetonimageclicklistener(onimageclicklistener mysetonimageclicklistener) {        this.mysetonimageclicklistener = mysetonimageclicklistener;    }}

mytextview布局

<RelativeLayout    xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="60dp"    android:id="@+id/recontent"    android:background="#ff9999"   >    <ImageView        android:id="@+id/image_view"        android:layout_width="wrap_content"        android:layout_height="match_parent"        android:src="@mipmap/ic_launcher"/>    <TextView        android:id="@+id/text_view"        android:text="text"        android:gravity="center"        android:layout_centerHorizontal="true"        android:layout_width="wrap_content"        android:layout_height="match_parent" /></RelativeLayout>

TwoActivity

public class TwoActivity extends AppCompatActivity implements MyTextView.onimageclicklistener {    private MyTextView mytextview;    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.twoactivity);        mytextview = (MyTextView) findViewById(R.id.mytextview);        mytextview.setMysetonimageclicklistener(this);    }    @Override    public void setonimageclicklistener(View view) {        finish();    }}

twoactivity布局

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:orientation="horizontal"    android:layout_height="60dp"    xmlns:app="http://schemas.android.com/apk/res-auto">    <com.aqinga.lianxi2.MyTextView        android:id="@+id/mytextview"        android:layout_width="match_parent"        android:layout_height="60dp"        app:text_title="TwoActivity"        app:text_size="16dp"        app:text_color="@color/colorPrimary"        app:src_color="@color/colorAccent"></com.aqinga.lianxi2.MyTextView></RelativeLayout>

attrs布局

<?xml version="1.0" encoding="utf-8"?><resources>    <declare-styleable name="MyTextView">        <attr name="text_title" format="string"></attr>        <attr name="text_size" format="dimension"></attr>        <attr name="text_color" format="color"></attr>        <attr name="src_color" format="reference"></attr>    </declare-styleable></resources>

原创粉丝点击