Android:尝试在TextView中设置文本时出现Null Pointer异常

时间:2014-08-28 11:53:41

标签: android textview

我正在尝试设置文本视图,该视图在布局中未在内容视图中设置。我在获取NullPointerException时设置了TextView。

 TextView titleView=(TextView)findViewById(R.id.mytext);
          titleView.setText("test" );

此TextView所在的xml如下所示

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" 
android:layout_gravity="center">



       <TextView
            android:id="@+id/mytext"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:textColor="@color/black"
            android:textSize="22sp" 
            android:background="@drawable/background"/>

        </LinearLayout>

我在操作栏中使用上述文件title_layout,代码如下: -

ActionBar actionBar = getActionBar();
        actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 
        actionBar.setCustomView(R.layout.title_layout);

可能是错误和可能的解决方案。

3 个答案:

答案 0 :(得分:2)

也许您在错误的地方找到了视图。尝试从操作栏中获取视图,例如:

TextView search = (TextView) actionBar.getCustomView().findViewById(R.id.mytext);

答案 1 :(得分:2)

TextView titleView;

在onCreate方法

    final ActionBar actionBar = getActionBar();

    actionBar.setHomeButtonEnabled(true);
    actionBar.setDisplayHomeAsUpEnabled(true);
    actionBar.setBackgroundDrawable(new ColorDrawable(Color
            .parseColor("#0065B2")));  // backgroung color 
    actionBar.setIcon("set icon here");

    actionBar.setDisplayShowTitleEnabled(false);
    actionBar.setDisplayShowCustomEnabled(true);
    actionBar.setCustomView(R.layout.actionbar);
    //
    titleView = ((TextView) actionBar.getCustomView()
            .findViewById(R.id.titleOfActionBar))

    titleView.setText("test" );

答案 2 :(得分:1)

 TextView titleView=(TextView)findViewById(R.id.mytext);
          titleView.setText("test" );  

必须在setContentView()中调用onCreate()之后。这是NPE的一个原因。

更新:

使用此:

getActionBar().getCustomView().findViewById(R.id.mytext);  

ActionBar设置自定义视图后,还可以使用该方法显示操作栏getActionBar().setDisplayShowCustomEnabled(true)的自定义视图。如果你不这样做,你将再次使用NPE。

此外,在设置操作栏视图后,请获取TextView