2013-07-30 31 views
-1

我已經在android的列表視圖中創建。 在這裏,我需要烘烤一條消息爲「您已查看此列表視圖中的所有項目」。如何知道已在android中查看列表視圖的所有項目?

即,查看列表視圖中的所有項目後,自動我需要顯示如上面的消息,如何做到這一點?

建議請

感謝您的寶貴時間!..

ListFruitActivity.java

public class ListFruitActivity extends ListActivity { 

static final String[] FRUITS = new String[] { "Apple", "Avocado", "Banana", 
     "Blueberry", "Coconut", "Durian", "Guava", "Kiwifruit", 
     "Jackfruit", "Mango", "Olive", "Pear", "Sugar-apple" }; 

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

    // no more this 
    // setContentView(R.layout.list_fruit); 

    setListAdapter(new ArrayAdapter<String>(this, R.layout.list_fruit,FRUITS)); 

    ListView listView = getListView(); 
    listView.setTextFilterEnabled(true); 

    listView.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 
      // When clicked, show a toast with the TextView text 
      Toast.makeText(getApplicationContext(), 
      ((TextView) view).getText(), Toast.LENGTH_SHORT).show(); 
     } 
    }); }} 
+0

在適配器的getView()中它將返回最後一項listview的位置。 – Saurabh

+0

@Saurabh你可以給我看一個樣品嗎? – prabu

+0

創建一個Adapter類並將其擴展到BaseAdapter,它將具有getView(int position,View v,ViewGroup parent) 在此函數中您將獲得最後一個位置。 簡而言之創建一個自定義列表視圖。 – Saurabh

回答

1

listView.getLastVisiblePosition()

返回POSI在適配器的數據集內顯示屏幕上顯示的最後一個項目。

listview.setOnTouchListener(new View.OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent arg1) { 
      //needs to be optimized 
      int count = ((ListView) v).getLastVisiblePosition(); 

      if(count == maxRow) 
      { 
       //make toast, 
      } 
      return false; 
     } 
}); 
0

一個簡單的例子可以使用HashMap來完成。這裏是一個快速樣品

HashMap map = new HashMap(); 
map.put("Apple", false); 
map.put("Avocado", false); 
//same for the rest of your fruit 

在onItemClickListener可以設置項目的值與給定鍵設置爲true的地圖。

map.put("Apple", true); 

同時,你可以檢查,如果你在地圖上有任何false值如果不是所有的項目已被查看。

另一種方法是將自定義對象添加到列表中並設置屬性(例如boolean viewed;),並在查看所述列表項時將其設置爲true。

相關問題