Android setText导致崩溃

时间:2012-02-10 07:14:30

标签: java android textview

我正在尝试构建一个带有图像和textview的小型简单程序。像倒计时一样。我一直试图破坏这个程序,一切正常,除非我到了setText,程序崩溃了。可能是什么问题呢?我做了很多搜索和更改,但仍然遇到了同样的问题。

package com.ob.IsIt;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.TextView;

public class Isit1337 extends Activity {

ImageView image;
TextView t;
String until;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    until = "fnkar inte";
    t=(TextView)findViewById(R.layout.main);
    run();





}
private void run()
{

    if(IsIt.check())
    {

        image.setEnabled(false);

    }

    until = IsIt.timeLeft();

    t.setText("test");


    }
}

IsIt工作,IsIt.check返回一个布尔值,IsIt.timeLeft返回一个String。 xml代码如下所示。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="bottom|center|center_vertical|top"
android:orientation="vertical" >

<ImageView
    android:id="@+id/image"
    android:layout_width="277dp"
    android:layout_height="441dp"
    android:src="@drawable/blackno" />

<TextView
    android:id="@+id/t"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="0.46"
    android:textAppearance="?android:attr/textAppearanceLarge" />

</LinearLayout>

提前谢谢!

6 个答案:

答案 0 :(得分:5)

我猜你得到的是NullPointerException。 (当提出这类问题时,最好还粘贴相关的LogCat输出。)更改此行:

t=(TextView)findViewById(R.layout.main);

到此:

t=(TextView)findViewById(R.id.t);

答案 1 :(得分:2)

你必须写:

t = (TextView) findViewById(R.id.t);

找到TextView的ID。

答案 2 :(得分:2)

ClassCastError,因为R.id.main是你的布局。

应该是:

t=(TextView)findViewById(R.id.t);

答案 3 :(得分:2)

将其更改为此

t=(TextView)findViewById(R.id.t);

答案 4 :(得分:0)

选中此文本视图:

t = (TextView) findViewById(R.id.t);

答案 5 :(得分:0)

TextView(any widget) should be referered as,
TextView t=(TextView)findViewById(R.id.t);

Layout(xml layout file)only should be refered as,
LayoutInflater layoutInflater;
LinearLayout linearLayout= (LinearLayout) layoutInflater.inflate(R.layout.main,
            null);