我正在尝试构建一个带有图像和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>
提前谢谢!
答案 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);