本文實例講述了Android開發中button按鈕的使用及動態添加組件方法。分享給大家供大家參考,具體如下:
MainActivity.java
package com.example.lab2;import android.os.Bundle;import android.app.Activity;import android.content.Context;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.view.View.OnLongClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.ImageButton;import android.widget.LinearLayout;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity {  EditText et1;       //輸入用戶名的EditText  EditText et2;      //輸入密碼的EditText  ImageButton ib;      //聲明ImageButton  Button btn;        //重置按鈕  Context context;  LinearLayout mLinearLayout;      //這個LineatLayout用于放置添加的組件  TextView tv;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    init(); //初始化    //單擊imagebutton    OnClickListener listener = new OnClickListener() {      @Override      public void onClick(View arg0) {        // TODO Auto-generated method stub        if(et1.getText().toString().equals("android") && et2.getText().toString().equals("2015"))        {          ib.setImageResource(R.drawable.state1);  //設置改變原來的圖片          et1.setVisibility(View.GONE);          et2.setVisibility(View.GONE);        }        else   //輸入賬號或者密碼錯誤的時候        {          et2.setText("");          et2.setHint("賬號或密碼錯誤");        }      }    };    ib.setOnClickListener(listener);    //長按imagebutton    OnLongClickListener longlistener = new OnLongClickListener() {      @Override      public boolean onLongClick(View arg0) {        // TODO Auto-generated method stub        Toast.makeText(context, "動態添加了TextView了哦", Toast.LENGTH_SHORT);        tv = new TextView(context);        tv.setText("這里是動態添加的TextView");        mLinearLayout.addView(tv);      //添加組件        return false;      }    };    ib.setOnLongClickListener(longlistener);    //重置    OnClickListener listener2 = new OnClickListener() {      @Override      public void onClick(View arg0) {        // TODO Auto-generated method stub        ib.setImageResource(R.drawable.state2);        et1.setHint("請輸入用戶名");        et2.setHint("請輸入密碼");        et1.setText("");        et2.setText("");        et2.requestFocus(); //將光標定位EditText        et1.setVisibility(View.VISIBLE);        et2.setVisibility(View.VISIBLE);        mLinearLayout.removeAllViews();    //點擊重置按鈕的時候,也將原來添加的組件一起清除      }    };    btn.setOnClickListener(listener2);  }  //初始化函數  public void init()  {    et1 = (EditText)findViewById(R.id.et_username);    et2 = (EditText)findViewById(R.id.et_passward);    ib = (ImageButton)findViewById(R.id.ib);    btn = (Button)findViewById(R.id.btn);    context = MainActivity.this;    mLinearLayout = (LinearLayout)findViewById(R.id.linearLayout);  }}xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <EditText android:id="@+id/et_username" android:hint="請輸入用戶名" android:layout_width="fill_parent" android:layout_height="wrap_content"/> <EditText android:id="@+id/et_passward" android:hint="請輸入密碼" android:inputType="textPassword" android:layout_width="fill_parent" android:layout_height="wrap_content"/> <ImageButton android:id="@+id/ib" android:src="@drawable/state2" android:layout_width="50dp" android:layout_height="50dp"/> <Button android:id="@+id/btn" android:text="重置" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <LinearLayout android:id="@+id/linearLayout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> </LinearLayout></LinearLayout>
希望本文所述對大家Android程序設計有所幫助。
新聞熱點
疑難解答