我已经很长时间潜伏了,并且设法使用这个网站找到了我所有问题的答案,但我担心我真的卡住了,需要一些帮助。<登记/> 我有一个片段,可以加载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;
}
}
感谢任何帮助。
答案 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)