2017-08-07 59 views
1

リストに項目がない場合、空のビューは表示されません。何が問題ですか?カスタムListVIew空の画面が表示されていません。

Main_Activity

パッケージcom.example.android.customadapter。

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


     ArrayList<Players> objects = new ArrayList<>(); 


     objects.add(new Players("Shikhar Dhawan",R.drawable.shikhar)); 
     objects.add(new Players("Virat Kohli",R.drawable.kohli)); 

    } 
} 

私のモデルクラス

Players.java

パッケージcom.example.android.customadapter。

public class Players { 

    private String mName; 
    private int image; 


    Players(String name,int res) 
    { 
     mName = name; 
     image = res; 
    } 

    public String getName() 
    { 
     return mName; 
    } 

    public int getImage() 
    { 
     return image; 
    } 
} 

CustomAdapterクラス

パッケージcom.example.android.customadapter。

マイカスタム配列リストアダプタ

public class CustomAdapter extends ArrayAdapter<Players> { 

    public CustomAdapter(@NonNull Context context, @LayoutRes int resource, @NonNull ArrayList<Players> objects) { 
     super(context, resource, objects); 
    } 


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

     View v = convertView; 
     if(v==null) 
     { 
      v = LayoutInflater.from(getContext()).inflate(R.layout.list_item,parent,false); 
     } 

     Players p = getItem(position); 

     TextView t = (TextView)v.findViewById(R.id.miwok_text_view); 

     t.setText(p.getName()); 

     ImageView i = (ImageView)v.findViewById(R.id.image); 

     i.setImageResource(p.getImage()); 


     return v; 
    } 

} 
+0

あなたはOnCreate関数であなたのリストビューを初期化しませんでしたし、それに答えるため –

+0

オレナYのおかげでアダプタを設定しなかったが、私は –

+0

'CustomAdapter customAdapter =新しいCustomAdapter(この言葉)という方法を行うことができます。 ListView lv =(リストビュー)findViewById(R.id.list); lv.setAdapter(customAdapter); ' –

答えて

0

あなたはクラスから値を取っていないため、エラーが発生しています。 は、ここで私はあなたがこれはあなたを助けることPlaylistfileinfo playlistfileinfo =(Playlistfileinfo)getItem(position);希望を見ることができます

@NonNull 
@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View view =convertView; 
    LayoutInflater layoutInflater = LayoutInflater.from(getContext()); 
    if (convertView==null){ 
     view=layoutInflater.inflate(R.layout.customplaylist,parent,false); 
    } 
    Playlistfileinfo playlistfileinfo =(Playlistfileinfo)getItem(position); 
    TextView textView =(TextView)view.findViewById(R.id.textView7); 
    textView.setTypeface(typeface); 
    textView.setText(playlistfileinfo.getName()); 
    return view; 
} 

を使用するコードです。

+0

ありがとうございました。私は懸念を理解して解決しました –

+0

何がエラーでしたか? – SAVVY

+0

私はonCreateメソッドでlistviewを初期化することを忘れて、配列アダプタをlistviewに設定する –

0

私はmain_activity initのArrayListの最後で解決しました。 ListViewをOnCreateメソッドで実行し、アレイアダプタをlistViewに設定します。

CustomAdapterアダプタ=新しいCustomAdapter(これは単語);

ListView listView = (ListView) findViewById(R.id.list); 

    listView.setAdapter(adapter); 
関連する問題