如何在 android 的选项卡式布局中访问片段中的控件?
How can i access the control in fragment in a tabed layout in android?
我在 android 中创建了一个项目,并使用页面视图和片段创建了一个选项卡布局,并在每个片段(3 个片段)中创建了一个控件
现在问题来了:
在 oncreate()
方法的 main activity class
中,我想将文本设置为文本视图并使用此代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
((TextView)findViewById(R.id.textView1)).setText("fgdfgdfgdf dfgdf");}
应用程序 运行 没有任何错误,但在模拟器中出现此错误 **!unfortunately Test is Stopping**
在日志猫中我明白了!
Caused by: java.lang.NullPointerException: Attempt to invoke virtual
method 'void android.widget.TextView.setText(java.lang.CharSequence)'
on a null object reference
我认为我在片段中访问控件的方式是错误的
请帮助我,这对我来说很重要
通过 activity 的 onCreate()
方法,您只能获取 activity XML.
上的视图元素
您可以在片段 class 而不是 Activity 上执行此操作:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_view, container, false);
TextView textView1 = (TextView) view.findViewById(R.id.textView1);
textView1.setText("fgdfgdfgdf dfgdf");
return view;
}
我在 android 中创建了一个项目,并使用页面视图和片段创建了一个选项卡布局,并在每个片段(3 个片段)中创建了一个控件 现在问题来了:
在 oncreate()
方法的 main activity class
中,我想将文本设置为文本视图并使用此代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
((TextView)findViewById(R.id.textView1)).setText("fgdfgdfgdf dfgdf");}
应用程序 运行 没有任何错误,但在模拟器中出现此错误 **!unfortunately Test is Stopping**
在日志猫中我明白了!
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
我认为我在片段中访问控件的方式是错误的 请帮助我,这对我来说很重要
通过 activity 的 onCreate()
方法,您只能获取 activity XML.
您可以在片段 class 而不是 Activity 上执行此操作:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_view, container, false);
TextView textView1 = (TextView) view.findViewById(R.id.textView1);
textView1.setText("fgdfgdfgdf dfgdf");
return view;
}