supportRequestWindowFeature(Window.FEATURE_PROGRESS)进度条没有在android 6.0中乱码

时间:2015-11-21 10:44:15

标签: android android-asynctask

我正在学习Android中的AsyncTask,我试图在后台线程中添加ListView中的字符串列表并同时尝试更新进度条。问题是进度条没有显示,但应用程序工作正常......项目逐一添加。

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();
       }
   }
}

1 个答案:

答案 0 :(得分:0)

进度功能已弃用表单API 21. Android 6.0是API 23

更新

您可能必须使用ProgressBar

QString::number(...)