为什么我的上一个按钮不起作用?

时间:2012-11-13 18:53:37

标签: android sqlite

我创建应用程序,我再次遇到数据库问题。 我做了两个按钮 - 上一个按钮和下一个按钮。 下一步按钮是工作,但点击上一步按钮程序后不在文本视图中显示记录。为什么? 首先我点击嵌套按钮所有工作,然后我点击上一个按钮,“光标”转到上一个记录,但不显示在textview中的记录。

我解决了我的问题。 我删除了方法:getNextdata()和getPrevData。

现在我的代码是:

Galeria.java:

public class Galeria extends Activity {

    public static long record = 1;
    PrzyslowiaArabskie info = new PrzyslowiaArabskie(this);


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.galeria);

        TextView tv = (TextView) findViewById(R.id.editText1);
        info.open();
        int irec = info.policz_rec();
        Toast.makeText(getApplicationContext(), " ilość przysłów w bazie " + irec, Toast.LENGTH_SHORT).show();
        String data = info.getData(record);
        info.close();
        tv.setText(data);


        Button bNastepny = (Button) findViewById(R.id.next);
        bNastepny.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub
                TextView tv = (TextView) findViewById(R.id.editText1);
                info.open();
                record++;
                String data = info.getData(record);
                info.close();
                tv.setText(data);

                }
        });
        Button bPoprzedni = (Button) findViewById(R.id.prev);
        bPoprzedni.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub
                TextView tv = (TextView) findViewById(R.id.editText1);
                info.open();
                record--;
                String data = info.getData(record);
                info.close();
                tv.setText(data);

                }
        });
    }
}

我在DB Helper类中的方法:

public String getData(long record) {
        // TODO Auto-generated method stub
        record = Galeria.record;
        String[] columns = new String[] { KEY_ID, KEY_PRZYSLOWIE};
        Cursor c = myDatabase.query(TABLE_NAME, columns, KEY_ID + "=" + record, null, null, null, null);
        if (c != null) {
             c.moveToFirst(); 
             String data = c.getString(1);
             return data;
    }
        return null;


}

我的所有按钮(下一个和前一个)都有效。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

没有运行你的代码,你确定你没有忘记放:

info.open();

info.close();

在你上一个按钮的onclick听众中?

如:

Button bPoprzedni = (Button) findViewById(R.id.prev);
    bPoprzedni.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            TextView tv = (TextView) findViewById(R.id.editText1);
            info.open();
            record--;
            String data = info.getPrevData(record);
            info.close();
            tv.setText(data);

        }
    });

==================================

如果这不能解决问题,你的logcat是否表明有任何错误?如果没有,您是否完全确定从getPrevData(record)方法中检索字符串?您可以通过执行以下操作来检查:

String data = info.getPrevData(record);
Log.d("bPoprzedni", data);

如果data未在LogCat中显示,那么您知道您没有正确地从数据库中获取它。

如果data出现在LogCat中,那么您可以缩小问题范围,我们可以轻松地帮助您完成该部分:)