Android第一行代码——第三章:控件的使用方法80-30-49-43-C7-95(2011号)

本章主要介绍常用的控件的使用方法

1. TextView

在界面上显示一段文本信息

activity_main.xml中的代码:

<TextView
    android:id="@+id/text_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:textColor="#00ff00"
    android:textSize="24sp"
    android:text="This is TextView!"/>

在界面上显示一段文本“TextView”

2. Button

在界面上显示一个按钮

activity_main.xml中的代码:

<Button
    android:id="@+id/button"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Button"
    android:textAllCaps="false" />

接下来我们可以在MainActivity中为Button的点击事件注册一个监听器,如下所示:

 public class MainActivity extends AppCompatActivity impLements View . OnClickListener {
    @Override
     protected void onCreate (Bundle savedInstanceState) {
             super . onCreate ( savedInstanceState) ;
             setContentView(R. layout. activity_ main);
             Button button = (Button) findViewById(R. id . button);
             button. set0nClickListener(this);
}
     
      @Override
       public void onClick(View v) {
              switch (v.getId()) {
                    case R.id. button:
                             //在此处添加逻辑
                             break;
                    default:
                             break ;
                     }
         }
 }

在界面上显示一个按钮“Button”

3.editText

可编辑的文本,允许用户在控件里输入和编辑

activity_main.xml中的代码:

<editText
    android:id="@+id/edit_Test"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="Type something here"
    android:maxLines="2" />

我们还可以结合使用EditText与Button来完成一 些功能,比如通过点击按钮来获取EditText中输人的内容。修改MainActivity中的代码,如下所示:

public class MainActivity extends AppCompatActivity implements View .0nClickListener {

      private EditText editText;
      @0verride
       protected void onC reate (Bundle savedInstanceState) {
              supe r . onC reate ( savedInstanceState) ;
              setContentView(R. layout .activity_ main);
              Button button = (Button) findViewById (R. id. button);
              editText = (EditText) findViewById(R. id. edit_ _text);
              button. setOnClickListener(this);
       }
      @0ver ride
       public void onClick(View v) {
              switch (v.getId()) {
                    case R. id . button:
                           String inputText = editText. getText().toString();
                           Toast . makeText (MainActivity. this, inputText,
                           Toast. LENGTH_ SHORT) . show();
                            break;
                     default :
                            break;
             }
      }
}

可编辑的文本,允许用户在控件里输入和编辑

4.ImageView

在界面上显示图片

activity_main.xml中的代码:

<ImageView
    android:id="@+id/image_Test"
    android:layout_width="wrap_content"
    android:layout_height="471dp"
    android:src="@drawable/img_1" />

我们还可以在程序中通过代码动态地更改ImageView中的图片,然后修改MainActivity 的代码,如下所示:

public class MainActivity extends AppCompatActivity implements View .0nClickListener {
        private EditText editText;
        private ImageView imageView;
        @0verride
        protected void onCreate( Bundle savedInstanceState) {
                 super . onC reate (savedInstanceState);
                 setContentView(R. layout .activity_ main);
                 Button button = (Button) findViewById(R. id. button);
                 editText = (EditText) findViewById(R. id. edit_ text);
                 imageView= . (ImageView) findViewById(R. id . image_ view) ;
                 button. set0nClickl istener(this);
}
          @0verride
           public void onClick(View v) {
                  switch (v.getId()) {
                         case R. id. button:
                                 imageView. setImageResource(R. drawable.img_ 2);
                             break;
                     default :
                             break;
             }
      }
}

在界面上显示图片“img-1”
在界面上显示图片“img-2

5.ProgressBar

在界面上显示一个进度条

activity_main.xml中的代码:

<ProgressBar
    android:id="@+id/progress_bar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    style="?android:attr/progressBarStyleHorizontal"
    android:max="100" />

接下来我们就来尝试实现,点击一下按钮让进度条消失,再点击一下按钮让进度条出现的这种效果。修改MainActivity中的代码,如下所示:

publ1c class MainActiv1ty extends AppCompatActivity implements View .0nClickL istener {
             private EditText editText;
             private ImageView imageView;
             private ProgressBar progressBar;
             @override
             protected vo1d onCreate( Bundle savedInstanceState) {
                   super . onCreate(savedInstanceState);
                   setContentView(R. layout . activity_ main);
                   Button button=(Button) findViewById(R. id. button);
                   editText = (EditText) findViewById(R. id. edit_ text);
                   imageView=(ImageView) findV1ewById(R. id. image_ v1ew);
                   progressBar=(ProgressBar) findViewById(R. id.progress_ bar);
                   button. set0nClickListener(this);
}
              @0verride
               public void onClick(View v) {
                     switch (v.getId()) {
                           case R.id. button:
                                   if (progressBar . getVisibility() ==View. GONE) {
                                       progressBar . setVisibility(View. VISIBLE);
                                   } else {
                                        progressBar . setVisibility (View. GONE) ;
                                  }      
                                  break;
                            default:
                                  break;
                       }
              }
    }

指定成水平进度条后,我们还可以通过android:max属性给进度条设置一个最大值,然后在代码中动态地更改进度条的进度。修改MainActivity中的代码,如下所示:

public class MainActivity extends AppCompatActivity implements View. 0nClickListener {
    ...
   @Override
    public void onClick(View v) {
            switch (v.getId()) {
                  case R. id . button:
                           int progress = progressBar .getProgress();
                           progress = progress + 10;
                           progressBar. setProgress(progress);
                           break; .
                      default:
                           break;
                  }
            }
   }

在界面上显示一个进度条

6.AlertDialog

可以在当前的界面弹出一个对话框

这个对话框是置顶于所有界面元素之上的,能够屏蔽掉其他控件的交互能力,因此AlertDialog 一般都是用于提示一些非常重要的内容或者警告信息。比如为了防止用户误删重要内容,在删除前弹出–个确认对话框。下面我们来学习一下它的用法,修改MainActivity中的代码,如下所示:

public class MainActivity extends AppCompatActivity implements View . OnClickListener {
              ...
              @0verride
              public vold onClick(View v) {
                     switch (v.getId()) {
                            case R. id. button:
                                    AlertDialog . Builder dialog = new ALertDialog . Builder (MainActivity.this);
                                    dialog. setTitle("This is Dialog");
                                    dialog. setMessage("something important.");
                                    dialog. setCancelable(false);
                                    dialog. setPositiveButton("0K", new DiaLogInterface.
                                          onClickListener() {
                                          @0verride
                                          public void onClick(DialogInterface dialog, int which) {
                                    });
                                    dialog. setNegativeButton("Cancel", new DialogInterface.
                                          onClickListener() {
                                          @0verride
                                          public void onCLick(DialogInterface dialog, int which) {
                                    });
                                    dialog. show();
                                    break;
                             default:
                                    break;
                          }
                   }
            }

在当前的界面弹出一个对话框

7.ProgressDialog

可以在界面上弹出一个对话框,都能够屏蔽掉其他控件的交互能力。

ProgressDialog和AlertDialog有点类似,都可以在界面上弹出一个对话框,都能够屏蔽掉其他控件的交互能力。不同的是,ProgressDialog 会在对话框中显示一个进度条, 一般用于表示当前操作比较耗时,让用户耐心地等待。它的用法和AlertDialog 也比较相似,修改MainActivity中的代码,如下所示:

public class MainActivity extends AppCompatActivity implements View. 0nClickListener {
                  ...
                 @0verride
                  public void onCl1ck(V1ew v) {
                         switch (v. getId(0) {
                               case R.id. button:
                                   ProgressDialog. progressDialog = new ProgressDialog
                                             (MainActivity. this);
                                   progressDiaLog.setTitle("This is ProgressDialog");
                                   progressDialog.setMessage("Loading..");
                                   progressDialog. setCancelable(true);
                                   progressDialog. show();
                                   break;
                            default:
                                   break;
                  }
            }
      }

可以看到,这里也是先构建出一个ProgressDialog对象,然后同样可以设置标题、内容、可否取消等属性,最后也是通过调用show()方法将ProgressDialog显示出来。重新运行程序,点击按钮后,效果如图所示。

在对话框中显示一个进度条

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值