Всякий раз, когда я нажимаю одну из двух кнопок изображения (EditButton, SaveButton), мое приложение падает.ImageButton crashes app
Ошибка та же каждый раз:
java.lang.IllegalStateException: Не удалось найти метод onSaveClicked (вид) в деятельности класса com.example.groceryrunner.MainActivity для обработчика OnClick на просмотр класс android.widget.ImageButton с идентификатором «» SaveButton
дело в том, я даже не метод onSaveClicked (вид), в любом случае в моем XML. Я пробовал всевозможные комбинации с фактическим методом, по которому кнопка должна идти при нажатии (onCreateLGClick), но это ничего не влияет, так как мое приложение так и не дошло. Кроме того, единственная кнопка, которая работает, несовместима, во много раз ничего не происходит или занимает 10 кликов, чтобы сделать свое событие выключенным, даже если оно работает раньше (кнопка CreateLG).
createlgmenu (XML):
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/Create_List"
android:title="@string/Create_List"/>
<item
android:id="@+id/Create_Food_Group"
android:title="@string/Create_Food_Group"/>
</menu>
меню (XML):
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/action_settings"/>
</menu>
активность основная (XML):
<TextView
android:id="@+id/GetStarted"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/ListName"
android:layout_centerHorizontal="true"
android:layout_marginTop="86dp"
android:text="Select or Create a list to get started!"
android:textSize="20sp" />
<ImageButton
android:id="@+id/EditButton"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignRight="@+id/SaveButton"
android:layout_alignTop="@+id/ListName"
android:layout_marginRight="32dp"
android:background="@null"
android:scaleType="centerInside"
android:src="@drawable/edit_button"
android:onClick="onCreateLGClick" />
<Button
android:id="@+id/CreateLG"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/ListName"
android:layout_toRightOf="@+id/ListsButton"
android:background="@null"
android:text="+"
android:textSize="40sp"
android:onClick="onCreateLGClick" />
<TextView
android:id="@+id/ListName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="26dp"
android:text="Grocery Runner"
android:textSize="22sp"
android:onClick="onCreateLGClick" />
<Button
android:id="@+id/ListsButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/EditButton"
android:layout_alignLeft="@+id/GetStarted"
android:background="@null"
android:text="≡"
android:textSize="40sp" />
<ImageButton
android:id="@+id/SaveButton"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignRight="@+id/GetStarted"
android:layout_below="@+id/EditButton"
android:background="@null"
android:onClick="onCreateLGClick"
android:scaleType="centerInside"
android:src="@drawable/save_disk" />
</RelativeLayout>
MainActivity.java:
package com.example.groceryrunner;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.PopupMenu;
import android.widget.TextView;
import android.app.ActionBar;
import android.content.DialogInterface;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Button Save = (Button) this.findViewById(R.id.SaveButton);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void onCreateLGClick(View v) {
final int id = v.getId();
/*switch (id) {
case R.id.CreateLG:
findViewById(R.id.GetStarted).setVisibility(View.INVISIBLE);
createLGMenu(v);
break;
case R.id.ListsButton:
findViewById(R.id.GetStarted).setVisibility(View.INVISIBLE);
createLGMenu(v);
break;
}*/
}
public void createLGMenu(View v) {
PopupMenu LGMenu = new PopupMenu(this, v);
LGMenu.getMenuInflater().inflate(R.menu.createlgmenu, LGMenu.getMenu());
LGMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
String choice = new String((String) item.getTitle());
if (choice == "Create_List") {
createListDialog();
}
else if (choice == "Create_Group") {
createListDialog();
}
return false;
}
});
LGMenu.show();
}
public AlertDialog.Builder dialogBuilder;
private void createListDialog() {
dialogBuilder = new AlertDialog.Builder(this);
EditText textInput = new EditText(this);
dialogBuilder.setTitle("Create list");
dialogBuilder.setMessage("Name your list: ");
dialogBuilder.setView(textInput);
dialogBuilder.setPositiveButton("Create", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
findViewById(R.id.ListName).setVisibility(View.INVISIBLE);
//Toast.makeText(getApplicationContent(), "List has been created.", toast.LENGTH_SHORT);
// add list to ListsButton
//findViewById(R.id.ListName). -> Change ListName text to created list
}
});
dialogBuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//Toast.makeText(getApplicationContent(), "List has been created.", toast.LENGTH_SHORT);
}
});
// Output
AlertDialog dialogue = dialogBuilder.create();
dialogue.show();
}
}
опубликовать ваше createLGMenu.xml, также разместить меню XML под названием main.xml – Ogen
Добавлено обоих. Благодарю. – user2100364
Вы пробовали очистить свой проект? – Ogen