用代码自写的控件view,点击事件如何给
1个回答
展开全部
先写自定义组合控件的布局LoginView 继承自LinearLayout
public class LoginViewextends LinearLayoutimplements View.OnClickListener{
private Context _context; public LoginView(Context context) { super(context); } public LoginView(Context context, AttributeSet attrs) { super(context, attrs); _context = context; //将指定布局id填充到当前页面 View view = LayoutInflater.from(context).inflate(R.layout.view_login, this, true); Button right_btn = view.findViewById(R.id.right_btn); right_btn.setOnClickListener(this); } public LoginView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override public void onClick(View view) { /*if(view.getId()==R.id.right_btn){ Toast.makeText(_context,"right",Toast.LENGTH_SHORT).show(); }*/ //调用接口的方法 loginViewClickListener.loginViewButtonClicked(view); } //定义接口的成员 OnLoginViewClickListener loginViewClickListener; //接口的setter public void setOnLoginViewClickListenler(OnLoginViewClickListener loginViewClickListener){ //在setter中把这个接口的实现赋值给这个loginview的上面定义的接口 this.loginViewClickListener = loginViewClickListener; } //接口 public interface OnLoginViewClickListener{ public void loginViewButtonClicked(View v);//传的参数 }}
写自定义组合控件LoginView 的对应的布局view_login
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <LinearLayout android:layout_gravity="center_vertical" android:layout_width="match_parent" android:layout_height="60dp" android:background="#D4DBED" android:orientation="horizontal"> <Button android:textSize="23sp" android:layout_width="80dp" android:layout_height="wrap_content" android:background="#D4DBED" android:text="<" /> <TextView android:textSize="23sp" android:gravity="center" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="#D4DBED" android:text="那些花儿" /> <Button android:id="@+id/right_btn" android:textSize="23sp" android:layout_width="80dp" android:layout_height="wrap_content" android:background="#D4DBED" android:text="⑤" /> </LinearLayout></LinearLayout>
public class LoginViewextends LinearLayoutimplements View.OnClickListener{
private Context _context; public LoginView(Context context) { super(context); } public LoginView(Context context, AttributeSet attrs) { super(context, attrs); _context = context; //将指定布局id填充到当前页面 View view = LayoutInflater.from(context).inflate(R.layout.view_login, this, true); Button right_btn = view.findViewById(R.id.right_btn); right_btn.setOnClickListener(this); } public LoginView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override public void onClick(View view) { /*if(view.getId()==R.id.right_btn){ Toast.makeText(_context,"right",Toast.LENGTH_SHORT).show(); }*/ //调用接口的方法 loginViewClickListener.loginViewButtonClicked(view); } //定义接口的成员 OnLoginViewClickListener loginViewClickListener; //接口的setter public void setOnLoginViewClickListenler(OnLoginViewClickListener loginViewClickListener){ //在setter中把这个接口的实现赋值给这个loginview的上面定义的接口 this.loginViewClickListener = loginViewClickListener; } //接口 public interface OnLoginViewClickListener{ public void loginViewButtonClicked(View v);//传的参数 }}
写自定义组合控件LoginView 的对应的布局view_login
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <LinearLayout android:layout_gravity="center_vertical" android:layout_width="match_parent" android:layout_height="60dp" android:background="#D4DBED" android:orientation="horizontal"> <Button android:textSize="23sp" android:layout_width="80dp" android:layout_height="wrap_content" android:background="#D4DBED" android:text="<" /> <TextView android:textSize="23sp" android:gravity="center" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="#D4DBED" android:text="那些花儿" /> <Button android:id="@+id/right_btn" android:textSize="23sp" android:layout_width="80dp" android:layout_height="wrap_content" android:background="#D4DBED" android:text="⑤" /> </LinearLayout></LinearLayout>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询