0

我目前正在從三個EditViews保存文本並構造SQL查詢的Activity中工作。之後,查詢被賦予另一個活動來搜索並顯示結果。Android - 保存文本並使用相同的按鈕啓動活動

現在我有兩個按鈕,一個保存查詢,一個onClickListener內,另一個按鈕啓動第二個活動:

searchButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
      //First the data from the editviews is saved  
      EditText searchName = (EditText) findViewById(com.pedro.books.R.id.search_name); 
      search_name = searchName.getText().toString(); 
      searchName.setText(""); 
      EditText searchAut = (EditText) findViewById(com.pedro.books.R.id.search_aut); 
      search_aut = searchAut.getText().toString(); 
      searchAut.setText(""); 
      EditText searchYea = (EditText) findViewById(com.pedro.books.R.id.search_yea); 
      search_yea = searchYea.getText().toString(); 
      searchYea.setText(""); 

      //here i construct the query  
    }); 

並與一個onClick在XML代碼中,我開始另一個按鈕活動:

public void ReadResults(View view){ 
    //The query is given to the ReadActivity to display the results 
    Intent intent = new Intent(this, ReadActivity.class); 
    intent.putExtra(ReadActivity.EXTRA_QUERY, query); 
    startActivity(intent); 
} 

我試着上是相同的按鈕,在不改變任何東西,這顯然是行不通的,而我也試着開始onClickListener內的活動,但我得到了這個錯誤:「The constructor Int (新的View.OnClickListener(){},類)未定義「

有沒有辦法啓動onClickListener內的活動或停止第二個活動開始,直到查詢保存?

在此先感謝!

回答

2

如果您將意圖放在一個不能使用的按鈕的onClick上,則需要使用YourActivity.this來正確獲取上下文。

this在你的按鈕是你OnClickListener像錯誤說

+0

謝謝!這工作得很好! –

-2

在哪裏/你怎麼稱呼你ReadResults方法?在旁註中 - 是否需要公開?如果你在clickListener處理程序中調用它,那就錯了。 1)將您的代碼從clickListener處理程序中提取出來,並將其放入您的活動類中的私有方法中。 2)你的clickListener只能調用這個私有方法。 3)你可以將你的3個編輯框作爲活動的記錄,並在onCreate()實例化它們,而不是每次點擊按鈕時都獲取它們,如果不必要的話,解析UI會很昂貴。

相關問題