Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
supportRequestWindowFeature(Window.FEATURE\u PROGRESS)进度条在android 6.0中未显示_Android_Android Asynctask - Fatal编程技术网

supportRequestWindowFeature(Window.FEATURE\u PROGRESS)进度条在android 6.0中未显示

supportRequestWindowFeature(Window.FEATURE\u PROGRESS)进度条在android 6.0中未显示,android,android-asynctask,Android,Android Asynctask,我正在学习android中的AsyncTask,我正在尝试在后台线程的ListView中添加一个字符串列表,同时尝试更新进度条。问题是progressbar没有显示,但应用程序运行良好。。。项目正在一个接一个地添加 public class MainActivity extends AppCompatActivity { ListView mListView; private String[] texts = {"A","B","C","D","E","F","G","H","I

我正在学习android中的AsyncTask,我正在尝试在后台线程的ListView中添加一个字符串列表,同时尝试更新进度条。问题是progressbar没有显示,但应用程序运行良好。。。项目正在一个接一个地添加

public class MainActivity extends AppCompatActivity {
    ListView mListView;
    private String[] texts = {"A","B","C","D","E","F","G","H","I"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        supportRequestWindowFeature(Window.FEATURE_PROGRESS);
       // requestWindowFeature(Window.FEATURE_PROGRESS);
        setContentView(R.layout.activity_main);

        mListView = (ListView) findViewById(R.id.listView);
        mListView.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, new ArrayList<String>()));
        new MyTask().execute();
    }

   private class MyTask extends AsyncTask<Void, String, Void>{

       private ArrayAdapter<String> mAdapter;
       private int count =0;

       @Override
       protected void onPreExecute() {
        mAdapter= (ArrayAdapter<String>) mListView.getAdapter();
           setProgressBarIndeterminate(false);
           setProgressBarVisibility(true);
       }

       @Override
       protected Void doInBackground(Void... params) {
           for(String item:texts){
               try {
                   Thread.sleep(500);
               } catch (InterruptedException e) {
                   e.printStackTrace();
               }
               publishProgress(item);
           }

           return null;
       }

       @Override
       protected void onProgressUpdate(String... values) {
        mAdapter.add(values[0]);
           count++;
           setProgress((int)(((double)count/texts.length)*10000));
       }

       @Override
       protected void onPostExecute(Void aVoid) {
           setProgressBarVisibility(false);
           Toast.makeText(MainActivity.this,"All items added",Toast.LENGTH_LONG).show();
       }
   }
}
public类MainActivity扩展了AppCompatActivity{
列表视图;
私有字符串[]文本={“A”、“B”、“C”、“D”、“E”、“F”、“G”、“H”、“I”};
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
supportRequestWindowFeature(Window.FEATURE\u进度);
//requestWindowFeature(窗口功能\进度);
setContentView(R.layout.activity_main);
mListView=(ListView)findViewById(R.id.ListView);
setAdapter(新的ArrayAdapter(这个,android.R.layout.simple_list_item_1,新的ArrayList());
新建MyTask().execute();
}
私有类MyTask扩展了AsyncTask{
私人ArrayaAdapter mAdapter;
私有整数计数=0;
@凌驾
受保护的void onPreExecute(){
mAdapter=(ArrayAdapter)mListView.getAdapter();
setProgressBarIndeterminate(假);
setProgressBarVisibility(真);
}
@凌驾
受保护的Void doInBackground(Void…参数){
用于(字符串项:文本){
试一试{
睡眠(500);
}捕捉(中断异常e){
e、 printStackTrace();
}
出版进度(项目);
}
返回null;
}
@凌驾
受保护的void onProgressUpdate(字符串…值){
mAdapter.add(值[0]);
计数++;
setProgress((int)((双)计数/文本长度)*10000);
}
@凌驾
受保护的void onPostExecute(void避免){
设置可见性(假);
Toast.makeText(MainActivity.this,“添加的所有项目”,Toast.LENGTH_LONG.show();
}
}
}

进度功能已从API 21中弃用。Android 6.0是API 23

更新 您可能必须使用ProgressBar

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="org.technologybord.android.asynctasklistview.MainActivity"
    android:orientation="vertical">

    <android.support.v7.widget.Toolbar
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <ProgressBar
            style="@android:style/Widget.ProgressBar.Horizontal"
            android:id="@+id/progress_spinner"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="end"
            android:visibility="gone" />

    </android.support.v7.widget.Toolbar>

    <ListView
        android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"></ListView>

</LinearLayout>


public class MainActivity extends AppCompatActivity {

    ListView mainList;
    ProgressBar progressBar;

    private String[] texts = {
            "Apple","Mango","Peach","Banana","Orange","Grapes","Watermelon","Tomato",
            "Fred", "Jane", "Richard Nixon", "Miss America",
            "man", "woman", "fish", "elephant", "unicorn",
            "a", "the", "every", "some",
            "big", "tiny", "pretty", "bald",
            "runs", "jumps", "talks", "sleeps",
            "loves", "hates", "sees", "knows", "looks for", "finds",
            "and", "or", "but", "because",
            "Apple","Mango","Peach","Banana","Orange","Grapes","Watermelon","Tomato",
            "Fred", "Jane", "Richard Nixon", "Miss America",
            "man", "woman", "fish", "elephant", "unicorn",
            "a", "the", "every", "some",
            "big", "tiny", "pretty", "bald",
            "runs", "jumps", "talks", "sleeps",
            "loves", "hates", "sees", "knows", "looks for", "finds",
            "and", "or", "but", "because"
    };


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //supportRequestWindowFeature(Window.FEATURE_PROGRESS);
        setContentView(R.layout.activity_main);

        mainList = (ListView)findViewById(R.id.listView1);
        mainList.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, new ArrayList<String>()));

        progressBar = (ProgressBar)findViewById(R.id.progress_spinner);

        new MyTask().execute();
    }

    class MyTask extends AsyncTask<Void, String, Void> {

        ArrayAdapter<String> adapter;
        private int counter = 0;

        @Override
        protected void onPreExecute() {
            //super.onPreExecute();
            this.adapter = (ArrayAdapter<String>)mainList.getAdapter();
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                progressBar.setMin(0);
            }
            progressBar.setMax(10000);
            progressBar.setIndeterminate(false);
            progressBar.setVisibility(View.VISIBLE);

            //setSupportProgressBarIndeterminate(false);
            //setProgressBarVisibility(true);
        }

        @Override
        protected Void doInBackground(Void... voids) {
            for(String item: texts) {
                publishProgress(item);
                try {
                    Thread.sleep(200);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }

            return null;
        }

        @Override
        protected void onProgressUpdate(String... values) {
            //super.onProgressUpdate(values);
            adapter.add(values[0]);
            counter++;
            progressBar.setProgress((int)(((double)counter/texts.length)*10000));
        }

        @Override
        protected void onPostExecute(Void aVoid) {
            //super.onPostExecute(aVoid);
            progressBar.setVisibility(View.GONE);
            Toast.makeText(MainActivity.this, "All items were added successfully!", Toast.LENGTH_LONG).show();
        }
    }
}

公共类MainActivity扩展了AppCompatActivity{
ListView主列表;
ProgressBar ProgressBar;
私有字符串[]文本={
“苹果”、“芒果”、“桃子”、“香蕉”、“橙子”、“葡萄”、“西瓜”、“西红柿”,
“弗雷德”、“简”、“理查德·尼克松”、“美国小姐”,
“男人”、“女人”、“鱼”、“大象”、“独角兽”,
“a”、“the”、“every”、“some”,
“大”、“小”、“漂亮”、“秃顶”,
“跑”、“跳”、“说”、“睡”,
“爱”、“恨”、“看”、“知道”、“寻找”、“发现”,
“和”、“或”、“但是”、“因为”,
“苹果”、“芒果”、“桃子”、“香蕉”、“橙子”、“葡萄”、“西瓜”、“西红柿”,
“弗雷德”、“简”、“理查德·尼克松”、“美国小姐”,
“男人”、“女人”、“鱼”、“大象”、“独角兽”,
“a”、“the”、“every”、“some”,
“大”、“小”、“漂亮”、“秃顶”,
“跑”、“跳”、“说”、“睡”,
“爱”、“恨”、“看”、“知道”、“寻找”、“发现”,
“和”、“或”、“但是”、“因为”
};
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//supportRequestWindowFeature(Window.FEATURE\u进度);
setContentView(R.layout.activity_main);
mainList=(ListView)findViewById(R.id.listView1);
setAdapter(新的ArrayAdapter(这个,android.R.layout.simple_list_item_1,新的ArrayList());
progressBar=(progressBar)findViewById(R.id.progress\u微调器);
新建MyTask().execute();
}
类MyTask扩展了AsyncTask{
阵列适配器;
专用整数计数器=0;
@凌驾
受保护的void onPreExecute(){
//super.onPreExecute();
this.adapter=(ArrayAdapter)mainList.getAdapter();
if(Build.VERSION.SDK\u INT>=Build.VERSION\u code.O){
progressBar.setMin(0);
}
progressBar.setMax(10000);
progressBar.SetUndeterminate(假);
progressBar.setVisibility(View.VISIBLE);
//setSupportProgressBarIndeterminate(假);
//setProgressBarVisibility(真);
}
@凌驾
受保护的空位背景(空位…空位){
用于(字符串项:文本){
出版进度(项目);
试一试{
睡眠(200);
}捕捉(中断异常e){
e、 printStackTrace();
}
}
返回null;
}
@凌驾
受保护的void onProgressUpdate(字符串…值){
//super.onProgressUpdate(值);
adapter.add(值[0]);
计数器++;
progressBar.setProgress((int)((双)计数器/文本长度)*10000);
}
@凌驾
受保护的void onPostExecute(void避免){
//super.onPostExecute(避免);
progressBar.setVisibility(View.GONE);
Toast.makeText(MainActivity.this,“所有项目都已成功添加!”,Toast.LENGTH_LONG.show();
}
}
}

您能重新格式化代码吗?最后我决定使用Ctrl+K来格式化它。您在onPreExecute()方法中为setProgressBarVisibility定义了代码。