Кнопка не работает при изменении активностиAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Кнопка не работает при изменении активности

Сообщение Anonymous »

Я пытаюсь написать простой список дел, состоящий из одного титульного экрана (который является основным действием) с кнопкой, которая переключает на фактический список (который является другим действием). Однако при нажатии кнопки «Добавить» в этом другом действии ничего не происходит — функция 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»