Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android線程中設置控件的值提示報錯的解決方法

Android線程中設置控件的值提示報錯的解決方法

編輯:關於Android編程

本文實例講述了Android線程中設置控件的值提示報錯的解決方法。分享給大家供大家參考,具體如下:

在Android線程中設置控件的值一般會與Handler聯合使用,如下:

package com.yarin.android.Examples_04_15;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.ImageView;
import android.widget.TextView;
public class Activity01 extends Activity
{
 //聲明ImageView對象
 ImageView imageview;
 TextView textview;
 //ImageView的alpha值,
 int  image_alpha = 255;
 Handler mHandler = new Handler();
 //控件線程
 boolean isrung = false;
 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState)
 {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);
 isrung = true;
 //獲得ImageView的對象
 imageview = (ImageView) this.findViewById(R.id.ImageView01);
 textview = (TextView) this.findViewById(R.id.TextView01);
 //設置imageview的圖片資源。同樣可以再xml布局中像下面這樣寫
 //android:src="@drawable/logo"
 imageview.setImageResource(R.drawable.logo);
 //設置imageview的Alpha值
 imageview.setAlpha(image_alpha);
 //開啟一個線程來讓Alpha值遞減
 new Thread(new Runnable() {
  public void run()
  {
  while (isrung)
  {
   try
   {
   Thread.sleep(200);
   //更新Alpha值
   updateAlpha();
   //如果使用下面注釋的代碼來直接設置imageview的透明度、textview的值會報錯,因為線程中不能對控件進行設置操作,需要使用一個Handler來進行對相關值的設置
//   if (image_alpha - 7 >= 0)
//   {
//    image_alpha -= 7;
//   }
//   else
//   {
//    image_alpha = 0;
//    isrung = false;
//   }
//   imageview.setAlpha(image_alpha);
//   textview.setText("現在alpha值是:"+Integer.toString(image_alpha));
   }
   catch (InterruptedException e)
   {
   e.printStackTrace();
   }
  }
  }
 }).start();
 //接受消息之後更新imageview視圖
 mHandler = new Handler() {
  @Override
  public void handleMessage(Message msg)
  {
  super.handleMessage(msg);
  imageview.setAlpha(image_alpha);
  textview.setText("現在alpha值是:"+Integer.toString(image_alpha));
  //更新
  imageview.invalidate();
  }
 };
 }
 public void updateAlpha()
 {
 if (image_alpha - 7 >= 0)
 {
  image_alpha -= 7;
 }
 else
 {
  image_alpha = 0;
  isrung = false;
 }
 //發送需要更新imageview視圖的消息
 mHandler.sendMessage(mHandler.obtainMessage());
 }
}

更多關於Android相關內容感興趣的讀者可查看本站專題:《Android線程與消息機制用法總結》、《Android編程之activity操作技巧總結》、《Android調試技巧與常見問題解決方法匯總》、《Android開發入門與進階教程》、《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android基本組件用法總結》、《Android視圖View技巧總結》、《Android布局layout技巧總結》及《Android控件用法總結》

希望本文所述對大家Android程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved