gpt4 book ai didi

java - 在 Spinner NullPointerException 中添加指定值

转载 作者:行者123 更新时间:2023-12-01 13:42:08 24 4
gpt4 key购买 nike

就像我之前的帖子:Adding Integers from Different Fragments in a ViewPager

但是现在,我尝试在 FragA 的微调器中分配一个值并将其添加到 FragB 的 int 中。与上一篇文章一样,总和将在 FragC 上。这是我的代码:

fragment A

public class FragA extends Fragment{ 

Spinner spinner1;
String s1;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {

spinner1 = (Spinner) getActivity().findViewById(R.id.spinner1);
spinner1.setOnItemSelectedListener(new OnItemSelectedListener() {

@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {

s1 = spinner1.getSelectedItem().toString();
getInt(s1);
}

@Override
public void onNothingSelected(AdapterView<?> arg0) {

}
});
return inflater.inflate(R.layout.fraga, container, false);
}

public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);

ArrayAdapter<CharSequence> adapter_a = ArrayAdapter.createFromResource(getActivity(), R.array.spinner1,android.R.layout.simple_spinner_item );
spinner1.setAdapter(adapter_a);
}

public int getInt(String s1) {

int a = 0;

if(s1.equals("Hello")) {
a = 5;
}
else if(s1.equals("Hi")) {
a = 10;
}

return a;
}

}

FragB

public class FragB extends Fragment{

int b = 20;

public int getInt() {

return b;
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {

return inflater.inflate(R.layout.fragb, container, false);
}

}

主要 Activity

public class MainActivity extends FragmentActivity {

ViewPager viewPager = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

viewPager = (ViewPager)findViewById(R.id.pager);
FragmentManager fragmentManager = getSupportFragmentManager();
viewPager.setAdapter(new MyAdapter(fragmentManager));
}

public class MyAdapter extends FragmentStatePagerAdapter {

public MyAdapter (FragmentManager fm) {
super(fm);
}

@Override
public Fragment getItem(int i) {
Fragment fragment = null;

if (i == 0)
{
fragment = new FragA();
}
if (i == 1)
{
fragment = new FragB();
}
if (i == 2)
{
fragment = new FragC();
}
return fragment;
}

@Override
public int getCount() {
return 3;
}
}

public String sum() {

FragA FragA = new FragA();
FragB FragB = new FragB();
return Integer.valueOf(FragA.getInt() + FragB.getInt());
}

}

FragC

public class FragC extends Fragment{

Button button;
TextView textView;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {

View v = inflater.inflate(R.layout.fragc, container, false);

textView = (TextView)v.findViewById(R.id.textview);
button = (Button)v.findViewById(R.id.button);
button.setOnClickListener(Click);

return v;
}

OnClickListener Click = new OnClickListener() {

@Override
public void onClick(View v) {

textView.setText(((MainActivity)getActivity()).sum());

}
};

}

MainActivity getInt() 出现错误,提示“FragA 类型中的方法 getInt() 不适用于 arguments()”

最佳答案

将此行放入 onCreateView

spinner1 = (Spinner) getActivity().findViewById(R.id.spinner1); 

关于java - 在 Spinner NullPointerException 中添加指定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20649497/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com