2016-03-29 12 views
-1

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(""); 
    } 

} 
+1

Sie versuchen Zuhörer auf eine Klasse Feld außerhalb jeder Methode hinzuzufügen. Verschieben Sie Ihren setOnClickListener in onCreateView – Wukash

Antwort

2

Sie erkannt werden, kann nicht Setup Zuhörer außerhalb Methode Umfang, der richtige Code ist unter

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(); 

    //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(); 

     } 
    }); 

    return v; 
} 

// printout entry 
public void printDatabase(){ 
    String dbString = dbHandler.databaseToString(); 
    LyricText.setText(dbString); 
    Input.setText(""); 
} 

} 
+0

Vielen Dank Mann wirklich zu schätzen – DinoArmadillo

Verwandte Themen