Я работаю над приложением, в котором мне нужно создать список.Список содержит 2 textViews и 1 флажок.Список должен удалить строку, которая обнаруживает щелчок по нему.Но щелчок будет обнаружен только в том случае, если для фокуса флажка установлено значение false.Но целью приложения также является удаление строки, когда установлен соответствующий флажок.Но onItemClickListener не обнаруживает щелчок на флажке.
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
ArrayList<ListData> ListData = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d(TAG, "onCreate: Starting");
final ListDataAdapter adapter = new ListDataAdapter(this ,R.layout.list_layout,ListData );
Button button= (Button) findViewById(R.id.Button);
CheckBox checkBox =(CheckBox)findViewById(R.id.checkbox);
final ListView listView = (ListView)findViewById(R.id.ListView);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
TextView textView1 = (TextView) findViewById(R.id.TextView1);
TextView textView2 = (TextView) findViewById(R.id.TextView2);
EditText editText1 = (EditText) findViewById(R.id.EditText1);
EditText editText2 = (EditText) findViewById(R.id.EditText2);
if (editText1.getText() != null && editText2!=null) {
String title = editText1.getText().toString();
String description = editText2.getText().toString();
textView1.setText(title);
textView2.setText(description);
ListData data = new ListData(title, description);
ListData.add(data);
saveArrayList();
Log.i(TAG, "display:" + ListData);
adapter.notifyDataSetChanged();
editText1.setText("");
editText2.setText("");
listView.setAdapter(adapter);
}
}
});
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
Log.d(TAG, "onItemClick: tapped");
ListData.remove(i);
saveArrayList();
adapter.notifyDataSetChanged();
listView.setAdapter(adapter);
return true;
}
});
}
}
Файл XML
<CheckBox
android:id="@+id/checkbox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="90"
android:focusable="false"
android:focusedByDefault="false" />