2016-04-28 33 views
0

嗨,我一直在用我的練習代碼出現問題。 事情是,它爲教程的人工作,但它不適合我。我的問題是我如何解決它?Android應用程序出錯setOnClickListener

package bt.sismo; 


import android.os.Bundle; 
import android.view.View; 
import android.widget.Toast;// 
import android.widget.ListView;// 
import android.widget.ListAdapter;// 
import android.widget.ArrayAdapter;// 
import android.widget.AdapterView;// 
import android.app.Activity;// 

public class MainActivity extends Activity { 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     String[] foods = {"Bacon", "Ham", "Tuna", "Candy", "Meatball", "Potato"}; 
     ListAdapter bryansAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, foods); 
     ListView bryansListView = (ListView) findViewById(R.id.bryansListView); 
     bryansListView.setAdapter(bryansAdapter); 

     bryansListView.setOnClickListener(
       new AdapterView.OnItemClickListener() { 
        @Override 
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
         String food = String.valueOf(parent.getItemAtPosition(position)); 
         Toast.makeText(MainActivity.this, food, Toast.LENGTH_LONG).show(); 
        } 
       } 

     ); 
    } 
} 

後來它讓我在logcat的

Error:(26, 23) error: no suitable method found for setOnClickListener(<anonymous OnItemClickListener>) 
    method View.setOnClickListener(OnClickListener) is not applicable 
    (argument mismatch; <anonymous OnItemClickListener> cannot be converted to OnClickListener) 
    method AdapterView.setOnClickListener(OnClickListener) is not applicable 
    (argument mismatch; <anonymous OnItemClickListener> cannot be converted to OnClickListener) 

Error:Execution failed for task ':app:compileDebugJavaWithJavac'. 
> Compilation failed; see the compiler error output for details. 
+0

[處理-Android的列表視圖-onitemclick事件](HTTP://www.ezzylearning。 com/tutorial/handling-android-listview-onitemclick-event) –

回答

7

你調用setOnClickListener和傳遞一個OnItemClickListener此錯誤。

更改此:

bryansListView.setOnClickListener(...)

向該:

bryansListView.setOnItemClickListener(...)

+0

非常感謝! –

1
 bryansListView.setOnItemClickListener(new OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, 
       long id) { 

      String food = String.valueOf(parent.getItemAtPosition(position)); 
        Toast.makeText(MainActivity.this, food, Toast.LENGTH_LONG).show(); 

     } 
    });