2016-07-05 41 views
-3

爲什麼Android Studio不能識別我已經導入了onClickListener API?Android Studio錯誤:無法找到變量itemclicklistener,儘管已經導入了OnItemClickListener API

以下行錯誤: listView.setOnItemClickListener(itemClickListener);

Code for my main activity is below: 
import android.content.Intent; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ListView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.AdapterView.OnItemClickListener; 


public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 


     new AdapterView.OnItemClickListener() { 
      public void onItemClick(AdapterView<?> listView, 
            View v, 
            int position, 
            long id) { 
       if (position == 0) { 
        //main activity launches food categories when the food option is clicked 
        Intent intent = new Intent(MainActivity.this, 
          FoodCategories.class); 
        startActivity(intent); 
       } 
      } 
     }; 

     //Add the listener to my listview 
     ListView listView = (ListView) findViewById(R.id.list_options); 
     listView.setOnItemClickListener(itemClickListener); 

     } 
} 
+0

你在哪裏初始化你的變量? –

+0

你需要定義'itemClickListener' ... !! –

+0

謝謝!我感到愚蠢。這是漫長的一天 – androidNewbie

回答

1
AdapterView.OnItemClickListener itemClickListener = new AdapterView.OnItemClickListener() { 
      public void onItemClick(AdapterView<?> listView, 
            View v, 
            int position, 
            long id) { 
       if (position == 0) { 
        //main activity launches food categories when the food option is clicked 
        Intent intent = new Intent(MainActivity.this, 
          FoodCategories.class); 
        startActivity(intent); 
       } 
      } 
     }; 

您在使用之前創建一個變量,它

1

你還沒有指定`itemClickListener:

AdapterView.OnItemClickListener itemClickListener = {rest of your code} 
0

只是做..

AdapterView.OnItemClickListener itemClickListener = new AdapterView.OnItemClickListener(){/*your code here*/ } 
1

有一個初始化問題,T他是一個正確的方式..請檢查它。 我可以幫你嗎?

public class MainActivity extends AppCompatActivity { 
ListView listView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     //Add the listener to my listview 
     listView = (ListView) findViewById(R.id.list_options); 
     listView.setOnItemClickListener(itemClickListener); 

     } 


     AdapterView.OnItemClickListener itemClickListener = new AdapterView.OnItemClickListener() { 
      public void onItemClick(AdapterView<?> listView, 
            View v, 
            int position, 
            long id) { 
       if (position == 0) { 
        //main activity launches food categories when the food option is clicked 
        Intent intent = new Intent(MainActivity.this, 
          FoodCategories.class); 
        startActivity(intent); 
       } 
      } 
     }; 
} 
1

這樣做。

public class MainActivity extends AppCompatActivity { 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 

      AdapterView.OnItemClickListener itemClickListener = new AdapterView.OnItemClickListener() { 
       public void onItemClick(AdapterView<?> listView, 
             View v, 
             int position, 
             long id) { 
        if (position == 0) { 
         //main activity launches food categories when the food option is clicked 
         Intent intent = new Intent(MainActivity.this, 
           FoodCategories.class); 
         startActivity(intent); 
        } 
       } 
      }; 


      ListView listView = (ListView) findViewById(R.id.list_options); 
      listView.setOnItemClickListener(itemClickListener);     
      } 
    } 
相關問題