Ich bin durchsuchbare Spinner in meiner App integrieren. Unten ist mein CodeProblem in durchsuchbaren Spinner-Adapter Android
gradle Datei
compile 'com.toptoche.searchablespinner:searchablespinnerlibrary:1.3.1'
XML-Datei
<com.toptoche.searchablespinnerlibrary.SearchableSpinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:hintText="Select Country"/>
Man.java
public class MainActivity extends AppCompatActivity {
SearchableSpinner mSearchableSpinner;
ArrayList<GetCountry> mGetCountries;
PriorityAdapter mPriorityAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSearchableSpinner = (SearchableSpinner) findViewById(R.id.spinner);
mGetCountries = new ArrayList<>();
GetCountry mGetCountry = new GetCountry();
mGetCountry.setId("1");
mGetCountry.setName("India");
mGetCountries.add(mGetCountry);
GetCountry mGetCountry2 = new GetCountry();
mGetCountry2.setId("2");
mGetCountry2.setName("USA");
mGetCountries.add(mGetCountry2);
GetCountry mGetCountry3 = new GetCountry();
mGetCountry3.setId("3");
mGetCountry3.setName("UK");
mGetCountries.add(mGetCountry3);
GetCountry mGetCountry4 = new GetCountry();
mGetCountry4.setId("4");
mGetCountry4.setName("CHINE");
mGetCountries.add(mGetCountry4);
GetCountry mGetCountry5 = new GetCountry();
mGetCountry5.setId("5");
mGetCountry5.setName("MALASIYA");
mGetCountries.add(mGetCountry5);
mPriorityAdapter=new PriorityAdapter(mGetCountries);
mSearchableSpinner.setAdapter(mPriorityAdapter);
}
public class PriorityAdapter extends ArrayAdapter<GetCountry> {
ArrayList<GetCountry> list;
public PriorityAdapter(ArrayList<GetCountry> list) {
super(MainActivity.this, R.layout.spin_layout, list);
this.list = list;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) { // Ordinary
return initView(position, convertView, parent);
}
@Override
public View getDropDownView(int position, View convertView,
ViewGroup parent) { // This view starts when we click the
// spinner.
return initView(position, convertView, parent);
}
public View initView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflator = getLayoutInflater();
convertView = inflator.inflate(R.layout.spin_layout, null);
TextView mTextView = (TextView) convertView
.findViewById(android.R.id.text1);
mTextView.setText(list.get(position).getName());
return convertView;
}
}
}
Wenn i über Code laufen lasse ich Ausgabe wie unter Bild erhalten. Benutzerdefinierte Arraylist Daten nicht anzeigen, es ist Drucken Müll Wert von Java jedes Element Spinner Output
Jede Idee, wie kann ich das lösen?
EDIT
public class PriorityAdapter extends ArrayAdapter<GetCountry> {
ArrayList<GetCountry> list;
public PriorityAdapter(ArrayList<GetCountry> list) {
super(MainActivity.this, R.layout.spin_layout, list);
this.list = list;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) { // Ordinary
return initView(position, convertView, parent);
}
@Nullable
@Override
public GetCountry getItem(int position) {
return super.getItem(position);
}
@Override
public View getDropDownView(int position, View convertView,
ViewGroup parent) { // This view starts when we click the
View view = convertView;
LayoutInflater layoutInflater = LayoutInflater.from(getContext());
view = layoutInflater.inflate(R.layout.spin_layout_1, parent, false);
TextView tv= (TextView) view.findViewById(R.id.text1);
tv.setText(list.get(position).getName());
return view;
}
public View initView(int position, View convertView, ViewGroup parent) {
View view = convertView;
LayoutInflater layoutInflater = LayoutInflater.from(getContext());
view = layoutInflater.inflate(R.layout.spin_layout_1, parent, false);
TextView tv= (TextView) view.findViewById(R.id.text1);
tv.setText(list.get(position).getName());
return view;
}
}
GetCountry.java
public class GetCountry {
String name;
String id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
Ich habe das gleiche Problem und das einzige, was ich hinzufügen kann ist, dass die DropDownView nicht wirklich berücksichtigt wird, sondern die .toString() Ihrer Klasse statt. I don (t wissen, warum, aber es scheint die SpinnerSearchable nicht richtig den Adapter nicht verwendet. Oder wahrscheinlich etwas wir verpassen. Hoffnung jemand helfen kann. Prost – Gary89
Wie dieses Problem zu lösen? Ich bin Das gleiche Problem bekommen? –