文本视图上的.setText函数导致我的应用程序崩溃。从我所看到的问题可能是关于它没有在UI线程,但我不知道如何解决它
public class SingleMenuItemActivity extends Activity {
TextView lblName;
TextView lblyest;
TextView lbltoday;
TextView lblHigh;
TextView lblLow;
TextView lblChange;
TextView lblPcchange;
Button set;
String name, yesterday, today, high, low, change, pcchange;
@Override
protected void onCreate (Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate( savedInstanceState );
setContentView( R.layout.single_list_item);
set=(Button) findViewById(R.id.btnSet);
lblName = (TextView) findViewById( R.id.name );
lblyest = (TextView) findViewById( R.id.yesterday );
lbltoday = (TextView) findViewById( R.id.today );
lblHigh = (TextView) findViewById( R.id.high );
lblLow = (TextView) findViewById( R.id.low );
lblChange = (TextView) findViewById( R.id.change );
lblPcchange = (TextView) findViewById( R.id.pcchange );
Intent in = getIntent();
name = in.getStringExtra( "name" );
;
yesterday = in.getStringExtra( "yesterday" );
today = in.getStringExtra( "today" );
high = in.getStringExtra( "high" );
low = in.getStringExtra( "low" );
change = in.getStringExtra( "change" );
pcchange = in.getStringExtra( "pcchange" );
lblName.setText(name);
lblyest.setText(yesterday);
lbltoday.setText(today);
lblHigh.setText(high);
lblLow.setText(low);
lblChange.setText(change);
lblPcchange.setText(pcchange);
}
}
无法确切地知道问题是什么
这是 logcat:
10-10 15:37:14.544: I/ActivityManager(58): Starting activity: Intent { cmp=com.kmarima.knight/.SingleMenuItemActivity (has extras) }
10-10 15:37:18.217: D/SntpClient(58): request time failed: java.net.SocketException: Address family not supported by protocol
10-10 15:37:24.613: W/ActivityManager(58): Launch timeout has expired, giving up wake lock!
10-10 15:37:24.685: W/ActivityManager(58): Activity idle timeout for HistoryRecord{45018590 com.kmarima.knight/.SingleMenuItemActivity}
10-10 15:37:29.874: D/dalvikvm(264): GC_EXPLICIT freed 2061 objects / 147656 bytes in 165ms
10-10 15:37:34.914: D/dalvikvm(296): GC_EXPLICIT freed 811 objects / 56944 bytes in 162ms
这是活动开始的地方
Intent in = new Intent(KnightActivity.this, SingleMenuItemActivity.class);
in.putExtra("name", "The Name");
in.putExtra("yesterday", "Value For Yesterday");
in.putExtra("today", "Todays Value");
in.putExtra("high", "High Value");
in.putExtra("low", "Low Value");
in.putExtra("change", "Change Value");
in.putExtra("pcchange", "PC Change Value");
startActivity(in);
答案 0 :(得分:0)
在setText中,您必须设置一些空值。给出错误的是哪一行? 请检查变量是否为空。
答案 1 :(得分:0)
你遇到这个问题是因为你没有从意图中获取值,必须是一个或多个值为null或者你在使用不同的密钥来获取意图的值时,请检查两个活动的关键字,是不是相同。
答案 2 :(得分:0)
You are getting this error because.....
"This exception is thrown when a program attempts to create an URL from an
incorrect specification."
答案 3 :(得分:0)
使用此
Bundle extras = getIntent().getExtras();
if (extras == null) {
return;
}
String name=extras.getString("name");
而不是
Intent in = getIntent();
name = in.getStringExtra( "name" );