R
Rumpel1984
Neues Mitglied
- 0
Hallo Leute,
ich habe folgendes Problem:
Ich habe einen Custom Adapter gemacht. Jedoch wird mein ListView damit nicht bevölkert.
Hier mal der Code:
ich habe folgendes Problem:
Ich habe einen Custom Adapter gemacht. Jedoch wird mein ListView damit nicht bevölkert.
Hier mal der Code:
Code:
public class customAdapter extends SimpleCursorAdapter{
private Context mContext;
private Context appContext;
private int layout;
private Cursor cr;
private LayoutInflater inflater;
public String LOG_TAG = getClass().getSimpleName();
public customAdapter(Context context, int layout, Cursor c, String[] from, int[] to, int flags){
super(context, layout, c, from, to);
this.layout=layout;
this.mContext = context;
this.inflater=LayoutInflater.from(context);
this.cr=c;
}
@Override
public View newView (Context context, Cursor cursor, ViewGroup parent) {
return inflater.inflate(layout, null);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
super.bindView(view, context, cursor);
TextView task=(TextView)view.findViewById(R.id.taskTextView);
int task_index=cursor.getColumnIndexOrThrow(TaskContract.Columns.TASK);
task.setText(cursor.getString(task_index));
}
@Override
public View getView(int position, final View convertView, ViewGroup parent){
View view = super.getView(position,convertView,parent);
Random rnd = new Random();
int color = Color.argb(255, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256));
RelativeLayout relativeLayout = (RelativeLayout) view.findViewById(R.id.wrapper);
relativeLayout.setBackgroundColor(color);
Log.d(LOG_TAG, " getView");
return relativeLayout;
}
}
Code:
public class ToDoFragment extends Fragment {
public String LOG_TAG = getClass().getSimpleName();
private SimpleCursorAdapter mCustomAdapter;
private TaskDBHelper dbHelper;
public ToDoFragment(){
}
@Override
public void onCreate(Bundle savedInstanceState) {
setHasOptionsMenu(true);
super.onCreate(savedInstanceState);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.to_to_fragment_menu, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_add_task){
addTask();
}
return super.onOptionsItemSelected(item);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Log.d(LOG_TAG, "onCreateView");
dbHelper = new TaskDBHelper(getActivity());
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor c = db.query(TaskContract.TABLE,
new String[]{TaskContract.Columns._ID, TaskContract.Columns.TASK},
null, null, null, null, null);
mCustomAdapter = new customAdapter(getActivity(),
R.id.container, c,
new String[]{TaskContract.Columns.TASK},
new int[]{R.id.taskTextView},0);
Log.d(LOG_TAG, " No.:" + c.getCount());
View rooView = inflater.inflate(R.layout.to_do_fragment, container,false);
ListView listView = (ListView) rooView.findViewById(R.id.fragment_listView);
listView.setAdapter(mCustomAdapter);
c.close();
return rooView;
}
private void updateUI(LayoutInflater inflater, ViewGroup container) {
dbHelper = new TaskDBHelper(getActivity());
SQLiteDatabase sqlDB = dbHelper.getReadableDatabase();
Cursor cursor = sqlDB.query(TaskContract.TABLE,
new String[]{TaskContract.Columns._ID, TaskContract.Columns.TASK},
null, null, null, null, null);
mCustomAdapter = new customAdapter(getActivity(), R.layout.task,cursor,new String[]{TaskContract.Columns.TASK},new int[]{R.id.taskTextView},0);
View rooView = inflater.inflate(R.layout.to_do_fragment, container, false);
ListView listView = (ListView) rooView.findViewById(R.id.fragment_listView);
listView.setAdapter(mCustomAdapter);
cursor.close();
}
public void onDoneButtonClick(LayoutInflater inflater, ViewGroup container, View view) {
View v = (View) view.getParent();
TextView taskTextView = (TextView) v.findViewById(R.id.taskTextView);
String task = taskTextView.getText().toString();
String sql = String.format("DELETE FROM %s WHERE %s = '%s'",
TaskContract.TABLE,
TaskContract.Columns.TASK,
task);
dbHelper = new TaskDBHelper(getActivity());
SQLiteDatabase sqlDB = dbHelper.getWritableDatabase();
sqlDB.execSQL(sql);
updateUI(inflater, container);
}
private void addTask(){
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Add a task");
builder.setMessage("What do you want to do?");
final EditText inputField = new EditText(getActivity());
builder.setView(inputField);
builder.setPositiveButton("Add", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
String task = inputField.getText().toString();
dbHelper = new TaskDBHelper(getActivity());
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.clear();
values.put(TaskContract.Columns.TASK, task);
db.insertWithOnConflict(TaskContract.TABLE, null, values, SQLiteDatabase.CONFLICT_IGNORE);
Log.d(LOG_TAG, "addTask");
}
});
builder.setNegativeButton("Cancel", null);
builder.create().show();
mCustomAdapter.notifyDataSetChanged();
}
}