Я пытаюсь написать простой список дел, состоящий из одного титульного экрана (который является основным действием) с кнопкой, которая переключает на фактический список (который является другим действием). Однако при нажатии кнопки «Добавить» в этом другом действии ничего не происходит — функция onClick даже не вызывается. Как мне это сделать?
Я пытался переписать код в соответствии с этим решением, но ничего не изменилось: Android Studio onClick и OnclickListener не работают после изменения в другое действие
Более того, я пытался реализовать код, используя первый упомянутый здесь подход, но безрезультатно:
https://medium.com/@CodyEngel/4-ways-to ... cklistener -on-android-9b956cbd2928
Вот класс MainActivity:
package com.example.kandydatpl;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void openChecklist(View view) {
Intent intent = new Intent(this, TaskListActivity.class);
startActivity(intent);
}
}
MainActivitty.xml
а также класс TaskListActivity:
package com.example.kandydatpl;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
import java.io.File;
import java.util.ArrayList;
public class TaskListActivity extends AppCompatActivity implements View.OnClickListener, AdapterView.OnItemClickListener {
private EditText itemET;
private Button btn;
private ListView itemsList;
private ArrayList items;
private ArrayAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_task_list);
itemET = findViewById(R.id.item_edit_text);
btn = findViewById(R.id.add_btn);
itemsList = findViewById(R.id.items_list);
items = FileHelper.readData(this);
adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, items);
itemsList.setAdapter(adapter);
btn.setOnClickListener(this);
itemsList.setOnItemClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.add_btn:
String itemEntered = itemET.getText().toString();
adapter.add(itemEntered);
itemET.setText("");
FileHelper.writeData(items, this);
Toast.makeText(this, "Item Added!", Toast.LENGTH_SHORT).show();
break;
}
}
@Override
public void onItemClick(AdapterView parent, View view, int position, long id) {
items.remove(position);
adapter.notifyDataSetChanged();
FileHelper.writeData(items, this);
Toast.makeText(this, "Delete", Toast.LENGTH_SHORT).show();
}
}
и соответствующий XML:
Подробнее здесь: https://stackoverflow.com/questions/584 ... is-changed