0

文本视图上的 .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); 




}


}

无法弄清楚到底是什么问题

这是日志猫:

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);
4

4 回答 4

0

您遇到此问题是因为您没有从意图中获取值,必须是一个或多个值将为空,或者您在从意图中获取值时使用不同的键,请检查两个活动的键,它们是否相同。

于 2012-10-10T12:45:14.433 回答
0

在 setText 中,您必须设置一些空值。它在哪一行给出错误?请检查变量不为空。

于 2012-10-10T12:34:46.603 回答
0

用这个

Bundle extras = getIntent().getExtras();
            if (extras == null) {
              return;
            }
 String name=extras.getString("name");

代替

Intent in = getIntent();

name = in.getStringExtra( "name" );
于 2012-10-10T15:15:20.743 回答
0
You are getting this error because.....

"This exception is thrown when a program attempts to create an URL from an
incorrect specification."
于 2012-10-10T12:50:39.290 回答