Android应用软件开发

194课时
1.7K学过
8分

课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
3分钟

6.1 实施步骤

实施步骤

步骤1:新建一个Module,命名为Ex6_1,其他设置默认。

步骤2:设置布局文件,清单如下。

Ex6_1 activity_main.xml清单

<?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="match_parent"
    android:orientation="vertical"
    >
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="【进度条Demo】"
        />
    <ProgressBar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/ProgressBarTest"
        style="?android:attr/progressBarStyleHorizontal"
        />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="开始"
        android:id="@+id/ButtonStart"
        android:onClick="e_View_Clicked"
        />

</LinearLayout>

步骤3:编写MainActivity.java文件。清单如下:

Ex6_1 MainActivity.java清单

package com.example.demo.demo_progressbar;

import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;

public class MainActivity extends AppCompatActivity {

    ProgressBar mProgressBarTest;
    Button mButtonStart;
    Runnable mRunnable;
    Handler mHandler;
    int m_iStep = 0;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        f_onCreate();
    }

    public void f_onCreate() {
        f_findView();
        f_newRunnable();
        f_newHandler();
    }

    public void f_findView() {
        mProgressBarTest = (ProgressBar) findViewById(R.id.ProgressBarTest);
        mButtonStart = (Button) findViewById(R.id.ButtonStart);
    }

    public void f_newRunnable() {
        mRunnable = new Runnable() {
            @Override
            public void run() {
                Message message;
                try {
                    while (true) {
                        Thread.sleep(100);
                        m_iStep++;
                        message = new Message();
                        mHandler.sendMessage(message);
                        if (m_iStep > 100) m_iStep = 0;
                    }
                } catch (Exception e) {
                    message = new Message();
                    message.obj = e;
                    mHandler.sendMessage(message);
                }
            }
        };
    }

    public void f_newHandler() {
        mHandler = new Handler() {
            public void handleMessage(Message message) {
                mProgressBarTest.setProgress(m_iStep);
            }
        };
    }

    public void e_View_Clicked(View view) {
        int iViewID = view.getId();
        switch (iViewID) {
            case R.id.ButtonStart:
                mButtonStart.setEnabled(false);
                new Thread(mRunnable).start();
                break;
        }
    }
   
}