【发布时间】:2017-05-16 20:02:54
【问题描述】:
我有一个 FragmentActivity 和三个 Fragment。当用户滑动屏幕时,我在 FragmentActivity 中使用 Viewpager 来一一显示我的所有片段。此外,我可以使用来自单独适配器的 intent.getExtras().getString() 将一些字符串数据放入我的 FragmentActivity。现在我想使用用户定义的函数将这个字符串数据从 FragmentActivity 发送到我的第一个 Fragment。但是我得到了 NullPointerException。有人请看看我的代码并建议我一些解决方案。
public class ExpandedPopupActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_expanded_popup);
Intent i = this.getIntent();
String Nam = i.getExtras().getString("name");
String Sur = i.getExtras().getString("surname");
String Emp = i.getExtras().getString("empID");
String Slr = i.getExtras().getString("salary");
if(Nam!=null && Sur!=null && Emp!=null && Slr!=null ){
FragmentOne f = new FragmentOne();
f.getDetail(Nam,Sur,Emp,Slr);
ViewPager pager = (ViewPager)findViewById(R.id.popuppager);
FragmentAdapter fadapter= new FragmentAdapter(getSupportFragmentManager());
pager.setAdapter(fadapter);
}
这是我的片段类
public class FragmentOne extends Fragment {
TextView name,surname,emp,sal;
public void getDetail(string name,String surname,String empid,String salary){
name.setText(name);
surname.setText(surname);
emp.setText(empid);
sal.setText(salary);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_one,container,false);
name = (TextView)view.findViewById(R.id.name);
surname = (TextView)view.findViewById(R.id.s_name);
emp = (TextView)view.findViewById(R.id.emp_id);
sal = (ImageView)view.findViewById(R.id.salary);
return view;
}
}
这就是日志所说的
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
【问题讨论】:
-
FrasgmentOne 包含一个名为
name的 TextView。getDetail方法还包含一个名为name的参数。本质上,您是在 String 参数上调用 SetText。即 name.setText(name) -
我试过了,但是不行
-
我在评论您的代码中的一个错误。不想回答你的问题。
-
非常感谢您的大力帮助!
标签: android android-fragments android-viewpager android-fragmentactivity