我有TextView [?]的问题,我初始化了textview,因为我想让它可滚动但是我有一个错误。
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
dc = new DigitalClock(this);
textViewMesssage = new TextView(this);
dc = (DigitalClock) findViewById(R.id.digitalClock1);
textViewMesssage = (TextView) findViewById(R.id.textV);
textViewMesssage.setMovementMethod(new ScrollingMovementMethod());
setContentView(R.layout.main);
addListenerOnButton();
}
public void addListenerOnButton() {
buttonTest = (Button) findViewById(R.id.button_id);
buttonTest.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Calendar c = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("dd:MMMM:yyyy HH:mm:ss a");
String strDate = sdf.format(c.getTime());
}
});
}
main.xml中
<TextView
android:id="@+id/textV"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="MainActivity"
android:layout_gravity="left"
android:scrollbars = "vertical"
/>
<Button
android:id="@+id/button_id"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text="Hello"
android:layout_gravity="right"
/>
和错误
20:36:04.407 18740 XXX.X错误AndroidRuntime引起:java.lang.NullPointerException 20:36:04.407 18740 XXX.X ERROR AndroidRuntime at XXX.X.MainActivity.onCreate(MainActivity.java:40) 40行是
textViewMesssage.setMovementMethod(new ScrollingMovementMethod());
我正在使用API lvl 8
答案 0 :(得分:6)
setContentView(R.layout.main);
。
答案 1 :(得分:2)
放:
setContentView(R.layout.main);
在onCreate的顶部,这段代码也毫无意义:
dc = new DigitalClock(this);
textViewMesssage = new TextView(this);
dc = (DigitalClock) findViewById(R.id.digitalClock1); //<< overwrites dc, and is not present in layout
答案 2 :(得分:1)
使用
创建新的文本视图textViewMesssage = new TextView(this);
然后立即将其扔掉
textViewMesssage = (TextView) findViewById(R.id.textV);
可能会返回null
。在这种情况下,它确实是因为在您的代码中此时尚未调用setContentView();
。请记住,在致电setContentView();
之前,您必须致电findViewById()
。因此,我建议将setContentView()
写为每个onCreate()
方法的第二行(在super.onCreate()之后)。
答案 3 :(得分:0)
为什么你需要这两行,删除它们检查它是否有效
dc = new DigitalClock(this);
textViewMesssage = new TextView(this);
并添加
setContentView(R.layout.main);