カスタムリストビューアダプターを作成しました。リストビューのアイテムはString.xmlに保存されています。私はアプリを実行すると、私は空白の活動だけを示しています。Android - 文字列配列の値をカスタムリストビューアダプターにロード
この問題を解決するのを手伝ってください。
これは私のカスタムアダプタのJavaクラスです。
public class UserAdapter extends ArrayAdapter<User> {
public UserAdapter(Context context, ArrayList<User> users, String[] number) {
super(context, 0, users);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
User user = getItem(position);
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.listview_singlerow, parent, false);
}
TextView tvName = (TextView) convertView.findViewById(R.id.org_name);
TextView tvNum = (TextView) convertView.findViewById(R.id.cn_num);
// Populate the data into the template view using the data object
tvName.setText(user.company_name);
tvNum.setText(user.contact_num);
return convertView;
}}
リストビューモデルクラス。
public class User {
public String company_name;
public Integer contact_num;
public User(String company_name, Integer contact_num) {
this.company_name = company_name;
this.contact_num = contact_num;
}}
メインアクティビティクラスで、アダプタをビューに添付します。
public class activity_one extends Activity {
String[] number;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity1);
number = getResources().getStringArray(R.array.dummy_data);
ArrayList<User> arrayOfUsers = new ArrayList<User>();
UserAdapter adapter = new UserAdapter(this, arrayOfUsers,number);
ListView listView = (ListView) findViewById(R.id.listView2);
listView.setAdapter(adapter);
}}
カスタムであなた同様にgetCount()メソッドがどこにありますかアダプタ? – Sayem
あなたのUser配列(arrayOfUsers)が空であると思います。 – OShiffer
アダプタに空の配列を与え、新しい項目を追加しないように見えます。 さらに、コンストラクタは大丈夫ですか?それがリソースIDを期待するので、スーパーコンストラクタで0を入れるのは正しくないようです。 –