Android ScrollView在结束滚动上添加数据

时间:2014-03-17 17:58:34

标签: android scrollview

我已经阅读了很多帖子,但从未找到解决我的问题的方法,即: 我在ScrollView中有LinearLayout。 LinearLayout包含膨胀布局。最后我有按钮。当用户点击按钮时,它会膨胀更多的布局(添加更多的表格行)。现在,我想删除按钮并在用户滚动到底部时调用其功能。

- 编辑 -

以下是我的代码的一部分......

public void showRows(){
    try {
        mydb = openOrCreateDatabase(DBNAME, Context.MODE_PRIVATE, null);
        Cursor select = mydb.rawQuery("SELECT * from TRANSACTIONS "+
          "limit "+nRow+",20", null);

        if (select.moveToFirst()) {
            do {
                LinearLayout item = (LinearLayout)findViewById(R.id.item);
                View child = getLayoutInflater().inflate(R.layout.child, null);
                item.addView(child);

                TextView txt = (TextView) child.findViewById(R.id.txt);
                txt.setText(select.getString(0));

            } while (select.moveToNext());
        }
    } catch (Exception e) {
        Toast.makeText(getApplicationContext(), "Reading error.", Toast.LENGTH_LONG).show();
    } finally {
        mydb.close();

        if(nRow+11 <= nTotalRows){
            LinearLayout item = (LinearLayout)findViewById(R.id.item);
            child_more = getLayoutInflater().inflate(R.layout.transaction_more, null);
            item.addView(child_more);
            bMore = (Button) child_more.findViewById(R.id.bMore);
            bMore.setOnClickListener(this);

            // on click nRow = nRow + 20 ... and calls again the same function

            //TODO...
            //...remove button but call more if ScrollView reachs end...
        }
    }

}

1 个答案:

答案 0 :(得分:0)

我建议在这种情况下使用ListView。您将能够检测到最后一个项目的显示时间并调用与按钮的单击调用相同的方法。 您可以通过调用bMore.setVisibility(View.GONE)隐藏按钮;