0

私はこの回答を試みた Android spinner showing object reference instead of string しかし、私のために働いていませんでした。スピナードロップダウンビュー表示参照

私は'com.toptoche.searchablespinner:searchablespinnerlibrary:1.3.1'ライブラリ

私はspinnerdropdownに関する問題に直面していますを使用しています。 私はスピナーのためCustomAdapterをしたが、dropdownviewで、それは私のアダプターコード

public class CustomAdapter extends ArrayAdapter<SpinnerItems> { 

    LayoutInflater inflater; 
    Activity context; 

    private List<SpinnerItems> spinnerItemsList; 


    public CustomAdapter(@NonNull Activity context, @LayoutRes int resource,List<SpinnerItems> spinnerItemsList) { 
     super(context, resource,spinnerItemsList); 
     this.context=context; 

     this.spinnerItemsList=spinnerItemsList; 

     //inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    } 

    @NonNull 
    @Override 
    public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { 

     View row = convertView; 
     if(row == null) 
     { 
      LayoutInflater inflater = context.getLayoutInflater(); 
      row = inflater.inflate(R.layout.simple_item_spiner, parent, false); 
     } 
     SpinnerItems spinnerItems=spinnerItemsList.get(position); 
     String name=spinnerItems.getName(); 
     TextView label=(TextView)row.findViewById(R.id.spinnertitle); 
     label.setText(spinnerItemsList.get(position).getName()); 

     return row; 
    } 

    @Override 
    public View getDropDownView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { 
     View row = convertView; 

     Log.d("drop","drp"); 
      LayoutInflater inflater = context.getLayoutInflater(); 
      row = inflater.inflate(R.layout.simple_item_spiner, parent, false); 

     SpinnerItems spinnerItems=spinnerItemsList.get(position); 
     String name=spinnerItems.getName(); 
     TextView label=(TextView)row.findViewById(R.id.spinnertitle); 
     label.setText(spinnerItemsList.get(position).getName()); 
     Toast.makeText(getContext(),String.valueOf(spinnerItems),Toast.LENGTH_LONG).show(); 
     return row; 
    } 


} 

私はdropdownToastとログを印刷しますがここで

f1312a01 @

spinneritems同様の参照 をされることを示しますgetdropdownviewメソッドには入っていないようです

ここ

はメインクラスです:

for (int i = 0; i < response.length(); i++) { 
       SpinnerItems spinnerItems=new SpinnerItems(response.getJSONObject(i).getString("id"),response.getJSONObject(i).getString("name")); 
       cityList.add(spinnerItems); 
      } 
      cityAdapter = new CustomAdapter(getActivity(),R.layout.simple_item_spiner,cityList); 
      city.setAdapter(cityAdapter); 
+0

あなたは、オブジェクト参照を示す[Androidのスピナーのこのhttps://stackoverflow.com/a/15776859/6630837 –

+0

が重複する可能性が表示されます文字列の代わりに](https://stackoverflow.com/questions/15776661/android-spinner-showing-object-reference-instead-of-string) –

+0

@SudheeshR私のコードをチェックしてください。私はそのコードを試しました:)しかし、私のために働いていませんでした –

答えて

0

の代わりにこの:

SpinnerItems spinnerItems=spinnerItemsList.get(position); 

使用getItemAtPosition(位置):この代わりの

SpinnerItems spinnerItems=spinnerItemsList.getItemAtPosition(position); 
+0

これはうまくいきます。それはあなたのために働く場合は答えとしてマークすることを忘れないでください:) –

+0

。私はしようとしますが、私はそれがgetdropdown機能に入っていないようだと思う。私はあなたの答えをテストしています –

+0

は動作していません。このメソッドは見つかりません。その配列としてアダプタ –

0

Toast.makeText(getContext(),String.valueOf(spinnerItems),Toast.LENGTH_LONG).show();

使用この..

Toast.makeText(getApplicationContext(),String.valueOf(name),Toast.LENGTH_LONG).show();

+0

これはアダプタの仲間です!その解決策btw。私もログ –

+0

を印刷したので、問題は何ですか?ドロップダウンに項目が印刷されていないか、ドロップダウンで項目を選択できませんか? –

+0

問題はドロップダウンビューであり、正確な名前ではなくオブジェクト参照を示します。なぜなら私はライブラリを使用しており、ライブラリではリストビューを使用しているからです。 getviewは正常に動作していますが、カスタムアダプタではドロップダウンが機能しません –

関連する問題