2013-07-19 21 views
-1

我發現這個代碼創建一個電池部件:我怎麼能寫字符串的一部分在Integer.toString

public class BatteryStatusWidgetActivity extends AppWidgetProvider { 
    /** Called when the activity is first created. */ 
     private String batteryLevel = "init"; 
     private int widgetImageFrame = R.drawable.widget_batt_frame01; 
     @Override 
     public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { 
      context.getApplicationContext().registerReceiver(this, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); 
      updateView(context); 
     } 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      int rawlevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); 
      int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1); 
      int level = 65; 
      level = (rawlevel * 100)/scale; 
      String batteryLevel = level + "%"; 
      widgetImageFrame = R.drawable.widget_batt_frame01; 
      updateView(context); 
      super.onReceive(context, intent); 
     } 
     public void updateView(Context context) { 
      RemoteViews thisViews = new RemoteViews(context.getApplicationContext().getPackageName(), R.layout.widget_layout); 
      thisViews.setTextViewText(R.id.widget_text, batteryLevel); 
      thisViews.setImageViewResource(R.id.imageView1, widgetImageFrame); 
      ComponentName thisWidget = new ComponentName(context, BatteryStatusWidgetActivity.class); 
      AppWidgetManager.getInstance(context).updateAppWidget(thisWidget, thisViews); 
     } 

這將在窗口小部件僅電池電量的數量顯示。我的意思是「65」,我想顯示「65%」。但是,如果我嘗試寫像batteryLevel = Integer.toString(level+"%");這樣的東西,我會得到錯誤..我該怎麼辦?

回答

1

剛剛替換onReceive()到下面的代碼,

@Override 
     public void onReceive(Context context, Intent intent) { 
      int rawlevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); 
      int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1); 
      int level = -1; 
      level = (rawlevel * 100)/scale; 
      batteryLevel = level+"%"; 
      widgetImageFrame = R.drawable.widget_batt_frame01; 
      updateView(context); 
      super.onReceive(context, intent); 
     } 

你得到一個錯誤的Integer.toString(level+"%")的根本原因是Integer.toString()方法此處使用的值接受int值,但不接受String值。 level+"%"是一個字符串值

+0

噢,這是我一直在尋找的東西。謝謝! –

2
int level = 65; 
String batteryLevel = level + "%"; 
+0

65是和example..could是55,80,90 ..是當前電池level..so我不認爲這是正確以這種方式..level是一個變量,當電池更換時會發生變化。 –

+0

是的,我知道了,int level = 65;只是一個例子。 取代你的「batteryLevel = Integer.toString(level);」 「batteryLevel = level +」%「;」 應該做的伎倆。 – Shpongoloid

+0

像我更新的代碼? –

2

試試這個它會工作

int level= 65;
String batterylevel = String.valueOf(level)+"%";

0

更改它以這樣的:

int level = -1 
level = (rawlevel * 100)/scale; 
String batteryLevel = level + "%"; 
相關問題