Пользовательский слушатель Spinner в Android?
Поскольку я работаю над созданием пользовательского спиннера и отображением значения в тостере. Значения устанавливаются на спиннер правильно, но я не могу отобразить их в тостере. Мой код -
Главная.java
public class Main extends Activity {
ArrayList<String> ast = new ArrayList<String>();
Spinner customspinner;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
customspinner = (Spinner)findViewById(R.id.spinner1);
ast.add("111111");
ast.add("222222");
ast.add("333333");
ast.add("444444");
MyAdapter adp = new MyAdapter();
customspinner.setAdapter(adp);
System.out.println(ast);
customspinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapter, View v,
int position, long val) {
// TODO Auto-generated method stub
//here when spinner was selected I need to save those two custom textviews in two string and need to display them in toast....
//String getspineer = customspinner.getSelectedItem().toString();
//Toast.makeText(getApplicationContext(), "spinner --- " + getspineer , Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
}
public class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
// TODO Auto-generated method stub
return ast.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View v = null;
LayoutInflater inflater = getLayoutInflater();
v = inflater.inflate(R.layout.customspinner, null);
TextView tv = (TextView)v.findViewById(R.id.textView1);
TextView tv1 = (TextView)v.findViewById(R.id.textView2);
String arlstdate[] = ast.get(position).split("~");
for (int i = 0; i < arlstdate.length; i++) {
tv.setText(arlstdate[i]);
tv1.setText(arlstdate[i]);
}
return v;
}
}
}
Здесь то, что я ищу, когда я выбираю spinner, мне нужно сохранить следующие два значения textview в двух строках и нужно отобразить их в тостовом беспорядке отдельно.
Может ли кто-нибудь помочь мне в этом? После долгих поисков я нашел этот код но невозможно сохранить в текст значения в строке & display..
2 ответов:
Я не совсем понимаю, что вы имеете в виду, извините, но в качестве указателя содержимое представления в этой позиции на спиннере совпадает со строкой в той же позиции на ArrayList, который вы использовали для заполнения адаптера.
Таким образом, вы можете взять значение из ArrayList, а не из представления Spinner.
@Override public void onItemSelected(AdapterView<?> adapter, View v, int position, long val) { String getspineer = ast.get(position); Toast.makeText(getApplicationContext(), "spinner --- " + getspineer , Toast.LENGTH_SHORT).show(); }
Для отображения сообщения тоста:
Toast.makeText(getApplicationContext(), "put strings here", Toast.LENGTH_SHORT).show();Чтобы получить текст из TextView:
String text = tv.getText();Однако, если вы хотите отобразить сообщение только в тосте, вам не нужны текстовые представления и вы можете просто использовать массив строк.
Извините, если я неправильно понял ваш вопрос.
Comments