新手:android按钮



我有两个按钮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帮助吗?

首先,我建议你去看一些教程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;
          }
     }
}

尝试将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-listeners:
b1.setOnClickListener( new Button1ClickedListener() );
b2.setOnClickListener( new Button1ClickedListener() );

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

最新更新