我想用微调器设置一个值,然后在我的onClick方法中将远程视图TextView(在窗口小部件上)的文本大小设置为所选值。我该怎么做?
由于
我试过了:
String selected;
Context context = WidgetConfig.this;
static Spinner spinner;
...
spinner.setOnItemSelectedListener(this);
public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
Log.v(TAG, "OnItemselected started");
switch (position) {
case 0:
selected = "10".toString();
Break;
}
}
public void onNothingSelected(AdapterView<?> arg0) {
}
View.OnClickListener mOnClickListener = new View.OnClickListener() {
public void onClick(View v) {
Log.v(TAG, "set remote view");
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
Log.v(TAG, "set txt size");
/* without this line*/ float number = Float.valueOf(selected.toString());
/* and this line, it runs fine */ views.setFloat(R.id.tvConfigInput, "setTextSize", number);
...
}
};
更新:
我宣布了两次字符串,所以我修复了它,现在它没有崩溃,但它不起作用。 文字大小没有改变..该怎么办?
答案 0 :(得分:1)
您选择的字符串为null,您确实在范围中定义了所选字符串而不是全局变量。改变它,它应该工作
String selected = "0"; // defined outside the function scope
public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
Log.v(TAG, "OnItemselected started");
switch (position) {
case 0:
selected = "10".toString();
Break;
}
}
float number = Float.valueOf(selected);
答案 1 :(得分:0)
您的答案如下:
WidgetConfig.java中的第254行正在调用null对象上的方法。
11-20 21:07:29.018: E/AndroidRuntime(2547): java.lang.NullPointerException
11-20 21:07:29.018: E/AndroidRuntime(2547): at com.harteg.NotesWidgetPro.WidgetConfig$1.onClick(WidgetConfig.java:254)