Java 选择微调器项值

Java 选择微调器项值,java,android,xml,android-spinner,Java,Android,Xml,Android Spinner,所以我有一个微调器,我想在这里找到所选的项目。我准备了一些东西来记住所选的项目。现在,在微调器所在的同一布局中有一个按钮可以单击,这将弹出一个对话框,告诉您选择了哪个项目。但我得到了一个错误,在我的日志猫上写着“java.lang.NullPointerException” 这是对话框的XML文件 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.androi

所以我有一个微调器,我想在这里找到所选的项目。我准备了一些东西来记住所选的项目。现在,在微调器所在的同一布局中有一个按钮可以单击,这将弹出一个对话框,告诉您选择了哪个项目。但我得到了一个错误,在我的日志猫上写着“java.lang.NullPointerException”

这是对话框的XML文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ffc0c0c0">

<TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Saving&apos;s Account"
            android:id="@+id/spinnerSelectedText"
            android:textColor="#ff000000"
            android:drawableLeft="@drawable/transferaccount_icon"
            android:drawablePadding="10dp"
            android:paddingLeft="10dp"
            android:layout_marginTop="10dp"
            android:textSize="16sp" />


</RelativeLayout>
现在,这是您开始时看到的屏幕-在主活动类之后,但我不想共享主活动的代码,因为我认为这不是必需的

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    final View v = inflater.inflate(R.layout.makea_transfer, container, false);


    spinner = (Spinner)v.findViewById(R.id.spinnermakeatransfer);
    ArrayAdapter adapter = ArrayAdapter.createFromResource(getActivity(), R.array.accounts,R.layout.spinner_item);
    adapter.setDropDownViewResource(R.layout.spinner_dropdown_items);
    spinner.setAdapter(adapter);
    spinner.setPrompt("Select an item");



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


    TextView spinnerText = (TextView) v.findViewById(R.id.spinnerSelectedText);
    spinnerText.setText(spinnerSelectedItem);

return v;

}
现在这是makea_传输XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">

<Spinner
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/spinnermakeatransfer"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:paddingTop="5dp"
            android:spinnerMode="dialog"
            android:layout_marginTop="5dp"
            android:touchscreenBlocksFocus="false" />

</RelativeLayout>

请有人能帮我解决这个问题,请评论,如果你不理解或需要更多的细节从我

这是原木猫
你需要这样做

 spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

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

                String spinnerSelectedItem = spinner.getSelectedItem().toString();
                Log.i("Selected item : ", items);
            }

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

            }

        });

你需要这样做

 spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

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

                String spinnerSelectedItem = spinner.getSelectedItem().toString();
                Log.i("Selected item : ", items);
            }

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

            }

        });

你需要这样做

 spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

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

                String spinnerSelectedItem = spinner.getSelectedItem().toString();
                Log.i("Selected item : ", items);
            }

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

            }

        });

你需要这样做

 spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

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

                String spinnerSelectedItem = spinner.getSelectedItem().toString();
                Log.i("Selected item : ", items);
            }

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

            }

        });
在这里:

spinnerSelectedText
位于
makea\u transfer\u confirm
版面内,但正在尝试从
makea\u transfer
获取:

examplefile
DialogFragment的
onCreateDialog
方法中获取文本视图:

View theDIalog = inf.inflate(R.layout.makea_transfer_confirm, null);
builder.setView(theDIalog);
// get TextView here
 TextView spinnerText = (TextView) theDIalog.findViewById(R.id.spinnerSelectedText);
要在
spinnerText
中显示
spinnerSelectedItem
值,请使用
examplefile
使用setArguments传递它:

v.findViewById(R.id.maketransferReviewButton).setOnClickListener(
                                                new View.OnClickListener() { 
@Override public void onClick(View v) { 
  SampleDialog fragment = new examplefile(); 
  Bundle args = new Bundle();
  args.putString("spinnerText", spinner1.getSelectedItem().toString());
  fragment.setArguments(args);
  examplefile.show(getFragmentManager(), "make a transfer dialog"); 
 } 

});
在onCreateDialog中,使用getArguments获取字符串,如下所示:

String strSelectedValueFromSpinner = getArguments().getString("spinnerText");
View theDIalog = inf.inflate(R.layout.makea_transfer_confirm, null);
builder.setView(theDIalog);
// get TextView here
TextView spinnerText = (TextView) theDIalog.findViewById(R.id.spinnerSelectedText);
spinnerText.setText(strSelectedValueFromSpinner);
在这里:

spinnerSelectedText
位于
makea\u transfer\u confirm
版面内,但正在尝试从
makea\u transfer
获取:

examplefile
DialogFragment的
onCreateDialog
方法中获取文本视图:

View theDIalog = inf.inflate(R.layout.makea_transfer_confirm, null);
builder.setView(theDIalog);
// get TextView here
 TextView spinnerText = (TextView) theDIalog.findViewById(R.id.spinnerSelectedText);
要在
spinnerText
中显示
spinnerSelectedItem
值,请使用
examplefile
使用setArguments传递它:

v.findViewById(R.id.maketransferReviewButton).setOnClickListener(
                                                new View.OnClickListener() { 
@Override public void onClick(View v) { 
  SampleDialog fragment = new examplefile(); 
  Bundle args = new Bundle();
  args.putString("spinnerText", spinner1.getSelectedItem().toString());
  fragment.setArguments(args);
  examplefile.show(getFragmentManager(), "make a transfer dialog"); 
 } 

});
在onCreateDialog中,使用getArguments获取字符串,如下所示:

String strSelectedValueFromSpinner = getArguments().getString("spinnerText");
View theDIalog = inf.inflate(R.layout.makea_transfer_confirm, null);
builder.setView(theDIalog);
// get TextView here
TextView spinnerText = (TextView) theDIalog.findViewById(R.id.spinnerSelectedText);
spinnerText.setText(strSelectedValueFromSpinner);
在这里:

spinnerSelectedText
位于
makea\u transfer\u confirm
版面内,但正在尝试从
makea\u transfer
获取:

examplefile
DialogFragment的
onCreateDialog
方法中获取文本视图:

View theDIalog = inf.inflate(R.layout.makea_transfer_confirm, null);
builder.setView(theDIalog);
// get TextView here
 TextView spinnerText = (TextView) theDIalog.findViewById(R.id.spinnerSelectedText);
要在
spinnerText
中显示
spinnerSelectedItem
值,请使用
examplefile
使用setArguments传递它:

v.findViewById(R.id.maketransferReviewButton).setOnClickListener(
                                                new View.OnClickListener() { 
@Override public void onClick(View v) { 
  SampleDialog fragment = new examplefile(); 
  Bundle args = new Bundle();
  args.putString("spinnerText", spinner1.getSelectedItem().toString());
  fragment.setArguments(args);
  examplefile.show(getFragmentManager(), "make a transfer dialog"); 
 } 

});
在onCreateDialog中,使用getArguments获取字符串,如下所示:

String strSelectedValueFromSpinner = getArguments().getString("spinnerText");
View theDIalog = inf.inflate(R.layout.makea_transfer_confirm, null);
builder.setView(theDIalog);
// get TextView here
TextView spinnerText = (TextView) theDIalog.findViewById(R.id.spinnerSelectedText);
spinnerText.setText(strSelectedValueFromSpinner);
在这里:

spinnerSelectedText
位于
makea\u transfer\u confirm
版面内,但正在尝试从
makea\u transfer
获取:

examplefile
DialogFragment的
onCreateDialog
方法中获取文本视图:

View theDIalog = inf.inflate(R.layout.makea_transfer_confirm, null);
builder.setView(theDIalog);
// get TextView here
 TextView spinnerText = (TextView) theDIalog.findViewById(R.id.spinnerSelectedText);
要在
spinnerText
中显示
spinnerSelectedItem
值,请使用
examplefile
使用setArguments传递它:

v.findViewById(R.id.maketransferReviewButton).setOnClickListener(
                                                new View.OnClickListener() { 
@Override public void onClick(View v) { 
  SampleDialog fragment = new examplefile(); 
  Bundle args = new Bundle();
  args.putString("spinnerText", spinner1.getSelectedItem().toString());
  fragment.setArguments(args);
  examplefile.show(getFragmentManager(), "make a transfer dialog"); 
 } 

});
在onCreateDialog中,使用getArguments获取字符串,如下所示:

String strSelectedValueFromSpinner = getArguments().getString("spinnerText");
View theDIalog = inf.inflate(R.layout.makea_transfer_confirm, null);
builder.setView(theDIalog);
// get TextView here
TextView spinnerText = (TextView) theDIalog.findViewById(R.id.spinnerSelectedText);
spinnerText.setText(strSelectedValueFromSpinner);


是的,它会将我选择的项目打印到控制台上。但是我想在这个对话框中打印文本got@user3511639您只需将微调器文本项传递到警报对话框的构造函数中,然后使用setText设置文本。是的,这会将我选择的项打印到控制台。但是我想在这个对话框中打印文本got@user3511639您只需将微调器文本项传递到警报对话框的构造函数中,然后使用setText设置文本。是的,这会将我选择的项打印到控制台。但是我想在这个对话框中打印文本got@user3511639您只需将微调器文本项传递到警报对话框的构造函数中,然后使用setText设置文本。是的,这会将我选择的项打印到控制台。但是我想在这个对话框中打印文本got@user3511639您只需将微调器文本项传递到警报对话框的构造函数中,然后使用setText设置文本。是的,您是对的,因此,在示例文件java中,我如何才能更改该文本并将其替换为微调器值?@user3511639:请参阅我的编辑答案。让我知道如果仍然有任何问题,我认为你在我发送评论的时候记下了它,所以我会快速阅读你键入的内容。我没有完全按照你在构造函数部分所说的去做,我是否将代码放在示例文件中。java还是在另一个java文件中?@user3511639:是,将其添加到examplefile中。javaYes您是对的,那么在示例文件java中,我如何才能更改该文本并用微调器值替换它?@user3511639:请参阅我的编辑答案。让我知道如果仍然有任何问题,我认为你在我发送评论的时候记下了它,所以我会快速阅读你键入的内容。我没有完全按照你在构造函数部分所说的去做,我是否将代码放在示例文件中。java还是在另一个java文件中?@user3511639:是,将其添加到examplefile中。javaYes您是对的,那么在示例文件java中,我如何才能更改该文本并用微调器值替换它?@user3511639:请参阅我的编辑答案。让我知道如果仍然有任何问题,我认为你在我发送评论的时候记下了它,所以我会快速阅读你键入的内容。我没有完全按照你在构造函数部分所说的去做,我是否将代码放在示例文件中。java还是在另一个java文件中?@user3511639:是,将其添加到examplefile中。javaYes您是对的,那么在示例文件java中,我如何才能更改该文本并用微调器值替换它?@user3511639:请参阅我的编辑答案。让我知道如果仍然有任何问题,我认为你在我发送评论的时候记下了它,所以我会快速阅读你键入的内容。我没有完全按照你在构造函数部分所说的去做,我是否将代码放在示例文件中。java还是在另一个java文件中?@user3511639:是,将其添加到examplefile中。JAVA