使用按钮返回第二个微调器

时间:2018-05-14 20:01:24

标签: android android-spinner

我已经很长时间潜伏了,并且设法使用这个网站找到了我所有问题的答案,但我担心我真的卡住了,需要一些帮助。<登记/> 我有一个片段,可以加载3个微调器和一个按钮。第二个和第三个微调器的列表数组由微调器1的值确定,因此当您更改微调器1时,微调器2和3的数组会在选择时更改。

这样可行,但我现在正努力在点击按钮时检索微调器2的字符串值(最终是相对数值)。

为了测试我的代码,我只是使用Toast来显示字符串。

最终目标是在后台进行计算(例如,微调器2乘以微调器3),但是当我使用OnClick时,会显示onCreate时微调器2的字符串。

我试图在OnItemSelectedListener中设置一个开关,将其归因于两个微调器,但它没有用。

真的,我想点击按钮,旋转器2的字符串显示在吐司中。

有人可以帮忙吗?

这是我的代码:

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.Toast;

public class Convertor extends Fragment {

public Convertor() {
    // Required empty public constructor
}

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

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

    String [] values_conversion =  {"Convert1","Convert2",};
    final Spinner spinner1 = view.findViewById(R.id.spinner1);
    final Spinner spinner2 = view.findViewById(R.id.spinner2);
    final Spinner spinner3 = view.findViewById(R.id.spinner3);
    final ArrayAdapter adapter1 = ArrayAdapter.createFromResource(getActivity(), R.array.array1_array, android.R.layout.simple_spinner_item);
    adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    final ArrayAdapter adapter2 = ArrayAdapter.createFromResource(getActivity(), R.array.array2_array, android.R.layout.simple_spinner_item);
    adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    final ArrayAdapter adapter3 = ArrayAdapter.createFromResource(getActivity(), R.array.array3_array, android.R.layout.simple_spinner_item);
    adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    final ArrayAdapter adapter4 = ArrayAdapter.createFromResource(getActivity(), R.array.array4_array, android.R.layout.simple_spinner_item);
    adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    spinner2.setAdapter(adapter1);
    spinner3.setAdapter(adapter3);

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_spinner_item, values_conversion);
    adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
    spinner1.setAdapter(adapter);
    spinner1.setSelection(0);

    spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()  {
        public void onItemSelected(AdapterView<?>  arg0, final View view, int position,
                                   long id) {
    switch (position) {
        case 0:
            spinner2.setAdapter(adapter1);
            spinner3.setAdapter(adapter3);
            break;
        case 1:
            spinner2.setAdapter(adapter2);
            spinner3.setAdapter(adapter4);
            break;
    }
            }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {
        }
    });

    final String from_unit1 = spinner2.getSelectedItem().toString(); // This gives the from string      

    final Button convert_btn = (Button) view.findViewById(R.id.convert_btn);
    convert_btn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {

            Toast toast = Toast.makeText(getContext(), from_unit1, Toast.LENGTH_SHORT);
            toast.show();
        }
    });
    return view;
}
}

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

试试这个

#code for a function which prints the first n natural numbers
n = raw_input("Enter n")
n = int(n)
def printint(p):
  for i in range(1 , n+1):
    return i 
print printint(n)