-1

我在 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();
        }
    }); }}
4

2 回答 2

1

listView.getLastVisiblePosition()

返回屏幕上显示的最后一项在适配器数据集中的位置。

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;
        }
});
于 2013-07-30T11:51:55.893 回答
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。

于 2013-07-30T11:56:39.803 回答