【问题标题】:setText TextView inside fragment片段内的setText TextView
【发布时间】:2013-12-09 19:51:51
【问题描述】:

我有一个带有微调器、按钮和文本视图的片段。

我的微调器有一串 Mansanas 和 Pakwan。

我无法解释清楚。我的代码只会解释我想要做什么。哈哈。这是我的代码:

片段A:

public class FragmentA extends Fragment {

    Spinner spinner1;

    Button button2;
    TextView textView6;

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

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

        textView6 = (TextView)v.findViewById(R.id.text6);
        button2 = (Button)v.findViewById(R.id.button2);
        button2.setOnClickListener(Click);

        return v;
    }

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

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

    OnClickListener Click = new OnClickListener(){ 

        @Override
        public void onClick(View v) {

            int a;

            Spinner spinner1 = (Spinner) v.findViewById(R.id.spinner1);
            String s1 = spinner1.getSelectedItem().toString();

            if(s1.equals("Mansanas")) {
                a = 5; 
                textView6.setText(Integer.toString(a)); 
            }
            else if(s1.equals("Pakwan")) {
                a = 10; 
                textView6.setText(Integer.toString(a)); 
            }   
        }   
    };

}

LogCat:

12-10 03:50:34.601: E/AndroidRuntime(31368): FATAL EXCEPTION: main
12-10 03:50:34.601: E/AndroidRuntime(31368): java.lang.NullPointerException
12-10 03:50:34.601: E/AndroidRuntime(31368):    at ljc.test.FragmentA$1.onClick(FragmentA.java:51)
12-10 03:50:34.601: E/AndroidRuntime(31368):    at android.view.View.performClick(View.java:4212)
12-10 03:50:34.601: E/AndroidRuntime(31368):    at android.view.View$PerformClick.run(View.java:17476)
12-10 03:50:34.601: E/AndroidRuntime(31368):    at android.os.Handler.handleCallback(Handler.java:800)
12-10 03:50:34.601: E/AndroidRuntime(31368):    at android.os.Handler.dispatchMessage(Handler.java:100)
12-10 03:50:34.601: E/AndroidRuntime(31368):    at android.os.Looper.loop(Looper.java:194)
12-10 03:50:34.601: E/AndroidRuntime(31368):    at android.app.ActivityThread.main(ActivityThread.java:5371)
12-10 03:50:34.601: E/AndroidRuntime(31368):    at java.lang.reflect.Method.invokeNative(Native Method)
12-10 03:50:34.601: E/AndroidRuntime(31368):    at java.lang.reflect.Method.invoke(Method.java:525)
12-10 03:50:34.601: E/AndroidRuntime(31368):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
12-10 03:50:34.601: E/AndroidRuntime(31368):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
12-10 03:50:34.601: E/AndroidRuntime(31368):    at dalvik.system.NativeStart.main(Native Method)

【问题讨论】:

  • 在 onclick 中,v 是您的按钮。你在里面找不到微调器。
  • 第 51 行是什么FragmentA.java
  • 哦..大声笑。好的。多谢。呵呵。我忘了它必须是 getActivity()
  • @Raghunandan - 我使用了你的答案,但你删除了它

标签: android variables android-fragments android-spinner


【解决方案1】:

你不能使用这条线。 v 在这种情况下是您单击的按钮。

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

替换为

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

获取片段的视图。

【讨论】:

    【解决方案2】:

    你有

    public class FragmentA extends Fragment {
    Spinner spinner1; 
    

    改变这个

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-19
      相关资源
      最近更新 更多