.setText函数导致错误

时间:2012-10-10 12:30:32

标签: android android-layout

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

4 个答案:

答案 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" );
相关问题