2016-04-05 34 views
0

上找到方法addButtonClick我試圖得到一個基本的SQLite數據庫在我的應用程序的工作,但在我的按鈕點擊我收到以下錯誤:無法基本SQLite的頁面

Could not find method addButtonClicked(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton with id 'addButton'

MemoActivity。 java的

public class MemoActivity extends ActionBarActivity { 

    EditText LInput; 
    TextView LText; 
    MyDbHandler dbHandler; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_memo); 
     LInput = (EditText) findViewById(R.id.LInput); 
     LText = (TextView) findViewById(R.id.LText); 
     dbHandler = new MyDbHandler(this, null, null, 1); 
     printDatabase(); 
    } 

    public void addButtonClicked(){ 
     Memos lyrics = new Memos(LInput.getText().toString()); 
     dbHandler.addLyric(lyrics); 
     printDatabase(); 
    } 

    public void deleteButtonClicked(){ 
     String inputText = LInput.getText().toString(); 
     dbHandler.deleteLyrics(inputText); 
     printDatabase(); 
    } 

    public void printDatabase(){ 
     String dbString = dbHandler.databaseToString(); 
     LText.setText(dbString); 
     LInput.setText(""); 
    } 

} 

activity_memo.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.test.test.app.MemoActivity"> 
    <include 
     layout="@layout/app_bar_main" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 


    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/LInput" 
     android:layout_marginTop="71dp" 
     android:width="300dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Add" 
     android:id="@+id/addButton" 
     android:layout_below="@+id/LInput" 
     android:layout_alignLeft="@+id/LInput" 
     android:layout_alignStart="@+id/LInput" 
     android:layout_marginTop="44dp" 
     android:onClick="addButtonClicked" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Delete" 
     android:id="@+id/deleteButton" 
     android:layout_alignBottom="@+id/addButton" 
     android:layout_alignRight="@+id/LInput" 
     android:layout_alignEnd="@+id/LInput" 
     android:longClickable="false" 
     android:onClick="deleteButtonClicked" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="Large Text" 
     android:id="@+id/LText" 
     android:layout_below="@+id/deleteButton" 
     android:layout_toRightOf="@+id/addButton" 
     android:layout_toEndOf="@+id/addButton" 
     android:layout_marginTop="102dp" /> 

</RelativeLayout> 

回答

1

爲了使其發揮作用,該方法必須是公開的,並且接受View作爲其唯一參數。所以,你需要通過View作爲參數。 像這樣:

public void addButtonClicked(View view){ 
     Memos lyrics = new Memos(LInput.getText().toString()); 
     dbHandler.addLyric(lyrics); 
     printDatabase(); 
} 

public void deleteButtonClicked(View view){ 
    String inputText = LInput.getText().toString(); 
    dbHandler.deleteLyrics(inputText); 
    printDatabase(); 
} 

documentation了更詳細的解釋;

+0

謝謝,但現在我在printDatabase()的()上得到一個錯誤;說printDatabase不能應用於查看 – DinoArmadillo

+0

固定。我犯了一個錯誤,對不起。 –