Ich versuche zu erstellen und App mit Fragmenten als Grundlage und in einem dieser Fragmente möchte ich eine grundlegende SQLite, in der Benutzer Memos hinzufügen können. Ich bin derzeit fest auf die Einbeziehung der Listener in Java anstelle von XML. Ich erhalte derzeit die folgenden Fehler.Android OnClickListener Fehler
C:\Users\Luke\AndroidStudioProjects\ShardswithFragments\app\src\main\java\com\test\test\app\MemoFragment.java
Error:(43, 40) error: <identifier> expected
Error:(43, 41) error: illegal start of type
Error:(43, 44) error: ')' expected
Error:(43, 49) error: ';' expected
Error:(43, 50) error: invalid method declaration; return type required
Error:(44, 9) error: illegal start of expression
Error:(44, 16) error: illegal start of expression
Error:(44, 28) error: ';' expected
Error:(44, 35) error: ';' expected
Error:(51, 43) error: <identifier> expected
Error:(51, 44) error: illegal start of type
Error:(51, 47) error: ')' expected
Error:(51, 52) error: ';' expected
Error:(51, 53) error: invalid method declaration; return type required
Error:(52, 9) error: illegal start of expression
Error:(52, 16) error: illegal start of expression
Error:(52, 28) error: ';' expected
Error:(52, 35) error: ';' expected
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
Es scheint mehr Syntax al Fehler und Unfähigkeit zu sein, Symbole zu lösen (setOnClickListener) spezifisch. Jede mögliche Hilfe würde
package com.test.test.app;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.view.View.OnClickListener;
/**
* A simple {@link Fragment} subclass.
*/
public class MemoFragment extends Fragment{
EditText Input;
TextView LyricText;
MyDBHandler dbHandler;
Button addButtonClicked;
Button deleteButtonClicked;
public MemoFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.fragment_memo, container, false);
Input = (EditText) v.findViewById(R.id.Input);
LyricText = (TextView) v.findViewById (R.id.LyricText);
addButtonClicked = (Button) v.findViewById(R.id.addButton);
deleteButtonClicked = (Button) v.findViewById(R.id.deleteButton);
dbHandler = new MyDBHandler(getActivity() ,null, null, 1);
printDatabase();
return v;
}
//add to db
addButtonClicked.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Lyrics lyrics = new Lyrics(Input.getText().toString());
dbHandler.addLyric(lyrics);
printDatabase();
}};
//delete from db
deleteButtonClicked.setOnClickListener(new View.OnClickListener() {
public void onClick(View v){
String inputtext = Input.getText().toString();
dbHandler.deleteLyrics(inputtext);
printDatabase();
}};
// printout entry
public void printDatabase(){
String dbString = dbHandler.databaseToString();
LyricText.setText(dbString);
Input.setText("");
}
}
Sie versuchen Zuhörer auf eine Klasse Feld außerhalb jeder Methode hinzuzufügen. Verschieben Sie Ihren setOnClickListener in onCreateView – Wukash