Android - Sqlite数据库方法未定义类型新View.OnClickListener(){}

时间:2012-09-29 09:04:54

标签: android

我想从RechargeActivity.java文件调用inserttable方法,其中定义位于另一个TryUIOpenHelper.java中,我的数据库和表创建在其中。我希望知道更好的方法..请帮助

     public class RechargeActivity extends Activity   {
     protected void onCreate(Bundle savedInstanceState) {


     super.onCreate(savedInstanceState);
     setContentView(R.layout.rechtable);

     RadioButton rb1 = (RadioButton) findViewById(R.id.rtt1); 
     RadioButton rb2 = (RadioButton) findViewById(R.id.rtt2); 
     final TextView amount = (TextView)findViewById(R.id.amount1);
     final TextView talktime = (TextView)findViewById(R.id.talktime1);
     final TextView validity = (TextView)findViewById(R.id.validity1);  
     final Button button = (Button) findViewById(R.id.done);

     final TryUIOpenHelper helper=new TryUIOpenHelper(this);
     final SQLiteDatabase dbDatabase=helper.getWritableDatabase();
     final Date date = new Date(); 
     Calendar now = Calendar.getInstance();
     int  year = now.get(Calendar.YEAR);
     int  month = now.get(Calendar.MONTH);      // 0 to 11
     int day = now.get(Calendar.DAY_OF_MONTH); 

     String val=""+(day)+"/"+(month+1)+"/"+(year+1)+"";
         validity.setText(val);

     try{
     rb1.setOnClickListener( new OnClickListener ()
     {
            public void onClick(View v)
            {   
          //Error here: The method inserttable(SQLiteDatabase) is undefined       for the type new View.OnClickListener(){}
    inserttable(dbDatabase);

           } 
          });
    }
    catch(Exception e)
    {
    System.out.println("Exception:"+e);
    }   

    rb2.setOnClickListener( new OnClickListener ()
     {
    public void onClick(View v)
      { 

      } } );

    button.setOnClickListener(new OnClickListener() {
        @Override
    public void onClick(View v) {
    final Intent intent = 
    new Intent(RechargeActivity.this,       NumForRecharge.class);
            startActivity(intent);
        }
    });

     //db.close();

      }         
      }

2 个答案:

答案 0 :(得分:0)

TryUIOpenHelper对象

上调用它
helper.inserttable(dbDatabase);

答案 1 :(得分:0)

 rb1.setOnClickListener( new OnClickListener ()
     {
            public void onClick(View v)
            {   

     TryUIOpenHelper openHelper=new TryUIOpenHelper();
    openHelper.inserttable(dbDatabase);

           } 
          });

更改你的onClickListener就像这样。

原因:当您尝试使用位于其他类中的方法时,您需要为该类创建一个Object,然后才能从该类调用一个方法(假设它是公共方法)。如果它是私有方法,那么您将无法访问它。

同样,如果该方法是静态方法,则无需为该类创建对象。只需ClassName.MethodName();即可。