0

我有两个按钮 b1 和 b2。如果按下按钮 b1,则执行查询 q1,否则如果按下按钮 b2,则执行另一个查询 q2。

if(b1_click)
{
  mCursor=//query
}
else if(b2_click)
{
  mCursor=//query
}

请告诉我如何实现这个。如何实现 b1_click 方法或任何告诉该按钮被按下的内置方法。我试过了

Cursor c;
c=//querys

    if(b1.isPressed())
    {
        next.setOnClickListener
        (
            new View.OnClickListener()
            {
                @Override public void onClick(View v) {
                    c=db.getData1(); (getData1 method return cursor)
                }
            }
        );
    } 
   tv.append(c.getString(column_number) (tv=TextView)

   "Same as above for b2"

就是说光标(c)应该是final Help?

4

2 回答 2

1

首先,我建议您阅读一些教程Hello Android,您还可以按照常见任务中的代码和示例以及如何在 Android 中进行操作

如果您仔细阅读此内容,您会知道这非常简单,如下所示:

public class MyActiviy extends Activity implements OnClickListener{

     protected void onCreate(Bundle savedInstance){
          super.onCreate(savedInstance);
          setContentView(R.layout.myLayout);
          findViewById(R.id.Button1).setOnClickListener(this);
          findViewById(R.id.Button2).setOnClickListener(this);
          //more code...
     }

     public void onClick(View v){
          switch(v.getId()){
              case R.id.Button1:
                  //Button1 pressedd...do stuff
                  break;
              case R.id.Button2:
                  //Button2 pressed...do some other stuff
                  break;
              default:
                  break;
          }
     }
}
于 2011-09-29T07:44:09.047 回答
0

尝试将您的 OnClickListeners 创建为私有类:

private class Button1ClickedListener implements OnClickListener {
  public void onClick( View v ) {
    //Do what needs to be done when button 1 is clicked.
  }
}

private class Button2ClickedListener implements OnClickListener {
  public void onClick( View v ) {
    //Do what needs to be done when button 2 is clicked.
  }
}

然后设置 onClick 侦听器:

b1.setOnClickListener( new Button1ClickedListener() );
b2.setOnClickListener( new Button1ClickedListener() );

如果您需要 OnClickListeners 能够使用光标,您只需在 OnClickListeners 的父类中将其声明为私有字段。

于 2011-09-29T07:44:39.530 回答