私はAndroidにかなり慣れていないので、いくつかのガイダンスが必要です。
これまでに2つの活動があります。最初のものには、ActionBarとListViewが含まれています。ListViewにTextViewとCheckBoxを含む行を入力したいと思います。テキストは、データベースから読み取られたユーザー名で表されます。ActionBarには、「新規」および「削除」のアクション用のボタンがあります。「new」は、データベースに新しいユーザーを追加する新しいアクティビティを開きます。削除アクションは、リストとデータベースからチェックされたエントリを削除する必要があります。画面:
主な活動: http: //imgur.com/ILljQ
プロファイルアクティビティを作成します:http://imgur.com/EbpD3
これらを取得するために、データベースにはSQLiteHelperとデータソースを使用し、ListViewにはカスタムArrayAdapterを使用しました。以下にリストされている1つの問題といくつかの懸念があります。
1。問題:新しいユーザーを追加すると、戻るボタンを使用してアプリを終了した後にのみ、ListViewに変更が表示されます。
2。カスタムArrayAdapterはこれに適したソリューションですか、それともCursorAdapterを使用する必要がありますか?クリックすると、リストアイテムは、それに関連付けられた情報を別のアクティビティ/フラグメントに使用する必要があります。以下は私のカスタムアダプターです。現在は機能していますが、次のステップは削除アクションを実装することであり、それをどのように行うのか完全にはわかりません。これは私がアドバイスを必要とするところです。ありがとうございました!
public class CustomUserAdapter extends ArrayAdapter<UserProfile>{
ArrayList<UserProfile> users;
private LayoutInflater inflater;
public CustomUserAdapter(Context context, ArrayList<UserProfile> users) {
// TODO Auto-generated constructor stub
super(context, R.layout.users_list_row, users);
this.users = users;
inflater = LayoutInflater.from(context);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
UserProfile user = users.get(position);
CheckBox checkBox;
TextView textView;
if(convertView == null){
convertView = inflater.inflate(R.layout.users_list_row, null);
checkBox = (CheckBox) convertView.findViewById(R.id.checkElement);
textView = (TextView) convertView.findViewById(R.id.textElement);
//tag row
convertView.setTag(new UserHolder(textView, checkBox));
} else {
UserHolder userHolder = (UserHolder) convertView.getTag();
checkBox = userHolder.getCheckBox();
textView = userHolder.getUserText();
}
//tag checkbox
checkBox.setTag(user);
//checkbox listener
checkBox.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
checkBox.setChecked(false);
textView.setText(user.getUsername());
return convertView;
}
}