Android Studio从进度条开始新活动

时间:2015-11-09 01:03:28

标签: android

我创建了一个进度,我想让它在加载完成后将用户带到下一个屏幕。我把一些代码放进去,以便在进度条加载完成后进入下一个屏幕,但它不起作用。我尝试澄清android清单文件中的第二个活动,但在加载完成后它仍然没有进入该页面。这是我写的代码。如果有人可以给我正确的代码或告诉我,如果我做错了什么,我将非常感谢非常感谢!

主要活动:

package com.example.brandon.territories;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.widget.ImageView;
import android.widget.ProgressBar;

public class MainActivity extends AppCompatActivity {
private ProgressBar progressBar;
private int progressStatus = 0;
private ImageView ImageView;
private Handler handler = new Handler();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    progressBar = (ProgressBar) findViewById(R.id.progressBar);
    ImageView imageView = (ImageView) findViewById(R.id.imageView);

    //Long operation by thread
    new Thread(new Runnable() {
        public void run() {
            while (progressStatus < 100) {
                progressStatus += 5;
                //Update progress bar with completion of operation
                handler.post(new Runnable() {
                    public void run() {
                        progressBar.setProgress(progressStatus);
                    }
                });
                try {
                    // Sleep for 300 milliseconds.
                    //Just to display the progress slowly
                    Thread.sleep(300);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }).start();
}

class MyProgressBar extends ProgressBar
{
    @Override
    public void setProgress(int progress)
    {
        super.setProgress(progress);
        if(progress == this.getMax())
        {
            //Do stuff when progress is max
            Intent intent  = new Intent(MainActivity.this, SecondActivity.class);
            startActivity(intent);
        }
    }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items
    //to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}
}

Android清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.brandon.territories" >

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".Splash"
        android:label="@string/title_activity_splash"
        android:theme="@style/AppTheme.NoActionBar" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name=".SecondActivity"
        android:label="@string/title_activity_second"
        android:theme="@style/AppTheme.NoActionBar" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

        </intent-filter>

    </activity>
</application>

</manifest>

1 个答案:

答案 0 :(得分:0)

这是错误

progressBar = (ProgressBar) findViewById(R.id.progressBar);
永远不会使用

MyProgressBar,因此永远不会调用启动setProgress的新奇SecondActivity方法。如果您在XML中使用新类,则应该转换为MyProgressBar。您也可以尝试在启动帖子之前通过代码将MyProgressBar添加到您的布局中。