简体   繁体   English

选择微调器项目值

[英]Select Spinner item value

So I have this spinner where I want to find what the selected item is. 所以我有一个微调器,我想在其中找到所选项目。 I got something in place to remember what the item which is selected. 我有一些地方可以记住选择了哪个项目。 Now there is a button to click within the same layout where the spinner is, this will bring up a dialog box which tells which item you have selected. 现在,有一个按钮可以在微调器所在的相同布局内单击,这将弹出一个对话框,告诉您选择了哪个项目。 But I am getting error , on my log cat it says "java.lang.NullPointerException" 但是我遇到了错误,在我的日志猫上它显示“ java.lang.NullPointerException”

This is my XML file for the Dialog Box; 这是我用于对话框的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>

This is my java file which is for the dialog ; 这是我用于对话框的java文件;

public class examplefile extends DialogFragment {

public Dialog onCreateDialog(Bundle savedInstanceState) {

    final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    LayoutInflater inf = getActivity().getLayoutInflater();
    View theDIalog = inf.inflate(R.layout.makea_transfer_confirm, null);
    builder.setView(theDIalog);

    builder.setCancelable(true);

return dialog;

}

}

Now this is the screen that you get when you start off - well after the main activity class but I don't want to share the code from main activity since i believe it's not necessary; 现在这是您开始时获得的屏幕-在主要活动课程之后,但是我不想共享主要活动的代码,因为我认为这是没有必要的。

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;

}

Now this is the makea_transfer XML ; 现在这是makea_transfer 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>

Please can someone help me fix this issue, please comment if you don't understand or need more details from me. 请有人帮我解决此问题,如果您不了解或需要我提供更多详细信息,请发表评论。

This is the Log Cat Click Here 这是原木猫点击这里

Here : 这里 :

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

spinnerSelectedText is inside makea_transfer_confirm layout but trying to get from makea_transfer : spinnerSelectedTextmakea_transfer_confirm布局内,但尝试从makea_transfer获取:

Get TextView in onCreateDialog method of examplefile DialogFragment : examplefile DialogFragment的onCreateDialog方法中获取TextView:

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

And for showing spinnerSelectedItem value in spinnerText pass it using examplefile class using setArguments : 为了在spinnerText显示spinnerSelectedItem值, spinnerText使用examplefile使用examplefile类将其传递给它:

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"); 
 } 

});

and inside onCreateDialog get String using getArguments as: 并在onCreateDialog中使用getArguments获取String,方法是:

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);

You need to do like this 你需要这样

 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) {

            }

        });

and Delete 和删除

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM