2013-09-20 3 views
0

Мне нужно вызвать мою функцию нажатием кнопки. если в XML onclick event call (listaFatture), я получаю ошибку. Зачем? Должен ли я установить другой класс?Call Listview onclick button

private void listaFatture(){ 
    SQLiteDatabase db = new FattureHelper(this).getReadableDatabase(); 
    final List<Dettaglio> dettagli = new ArrayList<Dettaglio>();   

     String sql ="SELECT nome_fornitore, SUM(importo_fattura) FROM Fatture WHERE importo_fattura>0 GROUP BY nome_fornitore"; 
     Cursor c = db.rawQuery(sql, null);   
     while (c.moveToNext()){ 
      Dettaglio d = new Dettaglio(); 

      d.fornitore = c.getString(0); 
      d.totale = c.getFloat(1); 


      dettagli.add(d); 
     } 
     c.close(); 
    db.close();  
    ListAdapter adapter = new ArrayAdapter<Dettaglio>(this, R.layout.dettaglio_elenco_fatture_group, R.id.t_fornitore_group, dettagli){   
     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      View row = super.getView(position, convertView, parent);      
      TextView tvFornitore, tvTotale; 
      tvFornitore = (TextView) row.findViewById(R.id.t_fornitore_group); 
      tvTotale = (TextView) row.findViewById(R.id.t_euro_group); 


      Dettaglio d = dettagli.get(position); 

      tvFornitore.setText(d.fornitore+""); 

Logcat:

09-21 15:29:09.617: E/AndroidRuntime(20670): java.lang.IllegalStateException: Could not find a method listaFatture()(View) in the activity class fatture.acquisti.Elenco_fatt_group for onClick handler on view class android.widget.Button with id 'button_1' 
09-21 15:29:09.617: E/AndroidRuntime(20670): at android.view.View$1.onClick(View.java:3722) 
09-21 15:29:09.617: E/AndroidRuntime(20670): at android.view.View.performClick(View.java:4354) 
09-21 15:29:09.617: E/AndroidRuntime(20670): at android.view.View$PerformClick.run(View.java:17961) 
09-21 15:29:09.617: E/AndroidRuntime(20670): at android.os.Handler.handleCallback(Handler.java:725) 
09-21 15:29:09.617: E/AndroidRuntime(20670): at android.os.Handler.dispatchMessage(Handler.java:92) 
09-21 15:29:09.617: E/AndroidRuntime(20670): at android.os.Looper.loop(Looper.java:137) 
09-21 15:29:09.617: E/AndroidRuntime(20670): at android.app.ActivityThread.main(ActivityThread.java:5328) 
09-21 15:29:09.617: E/AndroidRuntime(20670): at java.lang.reflect.Method.invokeNative(Native Method) 
09-21 15:29:09.617: E/AndroidRuntime(20670): at java.lang.reflect.Method.invoke(Method.java:511) 
09-21 15:29:09.617: E/AndroidRuntime(20670): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102) 
09-21 15:29:09.617: E/AndroidRuntime(20670): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869) 
09-21 15:29:09.617: E/AndroidRuntime(20670): at dalvik.system.NativeStart.main(Native Method) 
09-21 15:29:09.617: E/AndroidRuntime(20670): Caused by: java.lang.NoSuchMethodException: listaFatture() [class android.view.View] 
09-21 15:29:09.617: E/AndroidRuntime(20670): at java.lang.Class.getConstructorOrMethod(Class.java:460) 
09-21 15:29:09.617: E/AndroidRuntime(20670): at java.lang.Class.getMethod(Class.java:915) 
09-21 15:29:09.617: E/AndroidRuntime(20670): at android.view.View$1.onClick(View.java:3715) 
+0

Можете ли вы опубликовать в LogCat с ошибкой? – Szymon

+0

Я ввел LogCat –

+0

Можете ли вы опубликовать код своей деятельности, где вы установили событие onclick вашей кнопки. Кроме того, в каком классе теперь объявлен метод 'listaFatture'? – Szymon

ответ

0

Объявить свой метод, как общественный и добавьте параметр:

public void listaFatture(View view){ 

    // the rest of the code as is 

} 
+0

Я получаю эту ошибку: /AndroidRuntime (16488): java.lang.IllegalStateException: Не удалось найти метод listaFatture() (View) в классе активности fatture.acquisti.Elenco_fatt_group для обработчика onClick в классе вида android.widget.Button с id 'button_1' E/AndroidRuntime (16488): вызвано: java.lang.NoSuchMethodException: listaFatture() [класс android.view.View] 0E/AndroidRuntime (16488): \t at java.lang.Class. getConstructorOrMethod (Class.java:460) –

+0

Извините, забыли также добавить параметр. См. Мое редактирование. – Szymon

+0

Отлично !!! Спасибо! –