我正在尝试设置文本视图,该视图在布局中未在内容视图中设置。我在获取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);
可能是错误和可能的解决方案。
答案 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
。