在oncreate android中更新textview

在oncreate android中更新textview,android,Android,hi frnds我在整个视图中有一个按钮和一个文本视图,当我单击该按钮时,所有联系人都会保存在csv文件中,但当这些联系人将要保存到csv文件时,它会将文本更新为“导出3(此计数变化意味着1 2 3 4 5…直到联系人总数)contcts”表示当我单击按钮时文本视图正在更改,然后如何操作 获取手机中联系人总数的代码如下 update: @Override protected Boolean doInBackground(S

hi frnds我在整个视图中有一个按钮和一个文本视图,当我单击该按钮时,所有联系人都会保存在csv文件中,但当这些联系人将要保存到csv文件时,它会将文本更新为“导出3(此计数变化意味着1 2 3 4 5…直到联系人总数)contcts”表示当我单击按钮时文本视图正在更改,然后如何操作

获取手机中联系人总数的代码如下

      update:



                    @Override
        protected Boolean doInBackground(String... args) {
            int count;
            CSVWriter writer = null;
          try 
           {
            writer = new CSVWriter(new FileWriter(Environment.getExternalStorageDirectory().getAbsolutePath() + "/my_test_contact.csv"));
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
         }
        String displayName;
        String number;
        String emailid;
        long _id;

        String columns[] = new String[]{ ContactsContract.Contacts._ID,
                   ContactsContract.Contacts.DISPLAY_NAME };
        writer.writeColumnNames(); // Write column header
        Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,
                   columns,                
                   null,               
                   null,               
                   ContactsContract.Data.DISPLAY_NAME + " COLLATE LOCALIZED ASC");
        startManagingCursor(cursor);
         if(cursor.moveToFirst()) {  
           do {
               _id =      Long.parseLong(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)));   
               displayName = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)).trim();
               number = getPrimaryNumber(_id);
               emailid=getEmailid(_id);


               writer.writeNext((displayName + "/" + number+ "/" +  emailid).split("/"));
           } 
           while(cursor.moveToNext());   
           csv_status = true;
       } else {
           csv_status = false;
       }
       try {
            if(writer != null)
                writer.close();
        } catch (IOException e)
        {
           Log.w("Test", e.toString());
        }
    return null;

     }

在“活动”中的任意位置插入此代码

doInBackground:

Runnable myRun = new Runnable(){
    public void run(){
                        int count;
            CSVWriter writer = null;
          try 
           {
            writer = new CSVWriter(new FileWriter(Environment.getExternalStorageDirectory().getAbsolutePath() + "/my_test_contact.csv"));
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
         }
        String displayName;
        String number;
        String emailid;
        long _id;

        String columns[] = new String[]{ ContactsContract.Contacts._ID,
                   ContactsContract.Contacts.DISPLAY_NAME };
        writer.writeColumnNames(); // Write column header
        Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,
                   columns,                
                   null,               
                   null,               
                   ContactsContract.Data.DISPLAY_NAME + " COLLATE LOCALIZED ASC");
        startManagingCursor(cursor);
        int i = 1;
         if(cursor.moveToFirst()) {  
           do {
                publishProgress() //<<<< DO THIS
                               _id =      Long.parseLong(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)));   
               displayName = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)).trim();
               number = getPrimaryNumber(_id);
               emailid=getEmailid(_id);


               writer.writeNext((displayName + "/" + number+ "/" +  emailid).split("/"));
           } 
           while(cursor.moveToNext());   
           csv_status = true;
       } else {
           csv_status = false;
       }
       try {
            if(writer != null)
                writer.close();
        } catch (IOException e)
        {
           Log.w("Test", e.toString());
        }

        ////////////////// end loop
    }
}

我可以使用async task并在ProgressUpdate()上提供操作吗?那么,你可以提供一些关于bcoz的代码片段吗?我是android和java新手…谢谢…我保存了答案:$但不是asyncis i==1;在int中i=1;如果(cursor.moveToFirst()){do{rununuithread(new Runnable(){public void run(){TEXTVIEW.setText(“获取联系人”+i++);//更新文本!///here}应该在run()的外侧?没有内部rununuithread!!可以更改UI。。没问题
 runOnUiThread(new Runnable() {
            public void run(){
                TEXTVIEW.setText("GETTING contact"+integer);//update text! /// here
            }
        });