前提・実現したいこと
プログラミング初心者です。
AndroidstudioにてToDoリストを作っています。
編集画面<UpdateActivity>にて
ラジオボタンを用いてタスクの完了・未完了を判別し、
タスク一覧画面<MainActivity>にてタスク未完了のものを上部に、
完了したものをグレーアウトして下部に表示させる使用にしたいです。
どういうコードを書けばいいのかがわかりません。
お力添えいただければ幸いです。
発生している問題・エラーメッセージ
該当のソースコード
<MainActivity.java>
public class MainActivity extends AppCompatActivity {
List<Integer> memoListId = new ArrayList<>(); List<String> memoList = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ListView lvMemo = findViewById(R.id.listview); DatabaseHelper helper = new DatabaseHelper(this); SQLiteDatabase db = helper.getWritableDatabase(); try { String sql = "SELECT * FROM memo WHERE 1 = 1"; Cursor cursor = db.rawQuery(sql, null); while (cursor.moveToNext()) { int idxId = cursor.getColumnIndex("_id"); int idxTitle = cursor.getColumnIndex("title"); memoListId.add((int) cursor.getInt(idxId)); memoList.add(cursor.getString(idxTitle)); } } finally { db.close(); } ArrayAdapter<String> adapter = new ArrayAdapter<>(this, simple_list_item_1, memoList); lvMemo.setAdapter(adapter); //リストビューにリスナを設定 lvMemo.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long id) { int _memoId = memoListId.get(position); Intent intent = new Intent(MainActivity.this, EditActivity.class); intent.putExtra("MEMO_ID",_memoId); startActivity(intent); } }); } //新規登録ボタンの処理 public void onClick_MainEntry(View view) { Intent intent = new Intent(this, NewActivity.class); startActivity(intent); } }
<UpdateActivity.java>
public class UpdateActivity extends AppCompatActivity {
EditText editText; EditText editText2; String _title; String _body; int _memoId; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_update); //Intentオブジェクトを取得 Intent intent = getIntent(); //値を受け取る _memoId = intent.getIntExtra("MEMO_ID", -1); _title = intent.getStringExtra("MEMO_TITLE"); _body = intent.getStringExtra("MEMO_BODY"); //EditText型の値を取得 editText = findViewById(R.id.updatetitle); editText2 = findViewById(R.id.updatebody); //編集画面に保存内容を表示 editText.setText(_title); editText2.setText(_body); } //保存ボタンが押された時の処理 public void btn_Save2(View view) { //値を格納 _title = editText.getText().toString(); _body = editText2.getText().toString(); DatabaseHelper helper = new DatabaseHelper(this); SQLiteDatabase db = helper.getWritableDatabase(); try { String sqlDelete = "DELETE FROM memo WHERE _id = ?"; SQLiteStatement stmt = db.compileStatement(sqlDelete); stmt.bindLong(1, _memoId); stmt.executeUpdateDelete(); String sqlUpdate = "INSERT INTO memo(_id,title, body) VALUES (?, ?, ?)"; stmt = db.compileStatement(sqlUpdate); //変数のバインド stmt.bindLong(1, _memoId); stmt.bindString(2, _title); stmt.bindString(3, _body); stmt.executeUpdateDelete(); } finally { db.close(); } editText.setText(_title); editText2.setText(_body); Intent intent = new Intent(this, MainActivity.class); intent.putExtra("MEMO_ID",_memoId); intent.putExtra("MEMO_TITLE",_title); intent.putExtra("MEMO_BODY",_body); startActivity(intent); } //キャンセル処理 public void btn_Cancel2(View view) { finish(); }
}
<activity_update.xml>
<Button
android:id="@+id/hozon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="77dp"
android:layout_marginLeft="77dp"
android:layout_marginBottom="16dp"
android:onClick="btn_Save2"
android:text="@string/button_save"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button android:id="@+id/cancel" android:layout_width="wrap_content" android:layout_height="wrap_content"A android:layout_marginEnd="77dp" android:layout_marginRight="77dp" android:layout_marginBottom="16dp" android:onClick="btn_Cancel2" android:text="@string/button_cansel" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" /> <RadioGroup android:id="@+id/radiogroup" android:layout_width="wrap_content" android:layout_height="38dp" android:layout_marginStart="8dp" android:layout_marginLeft="8dp" android:layout_marginTop="16dp" android:layout_marginEnd="8dp" android:layout_marginRight="8dp" android:orientation="horizontal" app:layout_constraintBottom_toTopOf="@+id/updatetitle" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> <RadioButton android:id="@+id/kanryou" android:layout_width="150dp" android:layout_height="match_parent" android:checked="true" android:text="@string/switch_notyet" /> <RadioButton android:id="@+id/mikanryou" android:layout_width="84dp" android:layout_height="match_parent" android:baselineAligned="false" android:text="@string/switch_done" /> </RadioGroup>
</androidx.constraintlayout.widget.ConstraintLayout>
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー