【发布时间】:2017-01-05 19:19:59
【问题描述】:
我有一个导航抽屉活动,我在其中附加不同的片段
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener, rp_fragment.OnFragmentInteractionListener, sensors_fragment.OnFragmentInteractionListener, stats_fragment.OnFragmentInteractionListener {
我正在尝试修改片段中包含的 textview 的 text 属性,但我一直在视图上收到空指针异常 (java.lang.NullPointerException: Attempt to invoke virtual method 'void com.teicrete.alucard. sempi.sensors_fragment.ctv_tvst(int)' 在空对象引用上)。
主要活动:
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
if (id == R.id.nav_camera) {
ft.replace(R.id.fragment_placeholder, new rp_fragment());
ft.commit();
} else if (id == R.id.nav_gallery) {
ft.replace(R.id.fragment_placeholder, new sensors_fragment());
ft.commit();
gentempdata();
sensors_fragment sf = (sensors_fragment)fm.findFragmentById(R.id.fragment_sensors);
sf.ctv_tvst(1);
片段:
public class sensors_fragment extends Fragment {
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";
TextView ctv_tv;
TextView otv_tv;
View view;
...
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
view = inflater.inflate(R.layout.fragment_sensors, container, false);
TextView ctv_tv = (TextView)view.findViewById(R.id.ctv_tv);
TextView otv_tv = (TextView)view.findViewById(R.id.otv_tv);
//ctv_tv.setText("Test"); Only this works
return view;
}
...
public void ctv_tvst(int mtext) {
ctv_tv.setText(mtext);
}
我在这里查看过类似的帖子,但我无法解决我的问题。我能够修改文本视图的唯一地方是片段的 onCreateView (参见上面的代码)。如果我尝试从 mainactivity 或其他任何地方执行此操作,我会收到空指针错误。
有什么见解吗?
编辑:请参阅我在 android_griezmann 的帖子中的回复。 现在,我正在片段类本身中做我需要做的一切,然后我加载它们。我仍然想弄清楚为什么我不能从外部访问它的方法或视图。
【问题讨论】:
标签: java android android-fragments