1

我想从 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();

      }         
      }
4

2 回答 2

0

TryUIOpenHelper在你的对象上调用它

helper.inserttable(dbDatabase);
于 2012-09-29T09:16:20.910 回答
0
 rb1.setOnClickListener( new OnClickListener ()
     {
            public void onClick(View v)
            {   

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

           } 
          });

像这样更改您的 onClickListener。

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

同样,如果该方法是静态方法,则无需为该类创建对象。干脆ClassName.MethodName();就行。

于 2012-09-29T09:32:56.807 回答