尝试调用虚方法findViewByID

时间:2015-06-06 11:44:47

标签: android

当我运行我的应用程序时,我收到此错误:

06-06 11:21:37.603: E/AndroidRuntime(2222): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.wunderlist.slidinglayersample/com.wunderlist.slidinglayersample.Builder}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference
06-06 11:21:37.603: E/AndroidRuntime(2222): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference

似乎冲突代码是这样的:

   ((TextView) findViewById(R.id.sample1).findViewById(R.id.title1)).setText("Sample 1");
    ExpandableTextView expTv1 = (ExpandableTextView) findViewById(R.id.sample1).findViewById(R.id.expand_text_view);
    expTv1.setText(getString(R.string.dummy_text1));

但我不知道如何解决这个问题。从我的角度来看,似乎代码已经正确编写,因为我已经在另一个应用程序中使用了这部分代码而且它有效。请帮助我,因为我在网上搜索过这个问题,但似乎每个得到此错误的人都有这个问题的独特解决方案。

2 个答案:

答案 0 :(得分:0)

从下面的行中删除第二个findViewById():

f

答案 1 :(得分:0)

您的代码应如下所示:

((TextView) findViewById(R.id.sample1)).setText("text 1");
((TextView) findViewById(R.id.title1)).setText("text 2");

ExpandableTextView expTv1 = (ExpandableTextView) findViewById(R.id.sample1);
ExpandableTextView expTv2 = (ExpandableTextView) findViewById(R.id.expand_text_view);

expTv1.setText(getString(R.string.dummy_text1));
expTv2.setText(getString(R.string.dummy_text2));