TimePicker类型中的方法setCurrentMinute(Integer)不适用于参数(String)

时间:2013-03-21 22:50:43

标签: java android eclipse string timepicker

任何人都知道为什么我会收到此错误?

我所要做的就是节省时间选择器所选择的时间......我确信这是我忽略的简单事项。

非常感谢任何帮助!!!

Amani Swann

import android.app.Activity; 
import android.app.AlertDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.ViewGroup;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.TimePicker;

public class AddEditCountry extends Activity {

 private long rowID; 
 private EditText nameEt;
 private EditText capEt;
 private EditText codeEt;
 private TimePicker timeEt;

   @Override
   public void onCreate(Bundle savedInstanceState) 
   {
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.add_country);

      nameEt = (EditText) findViewById(R.id.nameEdit);
      capEt = (EditText) findViewById(R.id.capEdit);
      codeEt = (EditText) findViewById(R.id.codeEdit);
      timeEt = (TimePicker) findViewById(R.id.timeEdit);


      Bundle extras = getIntent().getExtras(); 

      if (extras != null)
      {
         rowID = extras.getLong("row_id");
         nameEt.setText(extras.getString("name"));  
         capEt.setText(extras.getString("cap"));  
         codeEt.setText(extras.getString("code"));  
         timeEt.setCurrentHour(extras.getString("time"));  
      }

      Button saveButton =(Button) findViewById(R.id.saveBtn);
      saveButton.setOnClickListener(new OnClickListener() {

          public void onClick(View v) 
          {
             if (nameEt.getText().length() != 0)
             {
                AsyncTask<Object, Object, Object> saveContactTask = 
                   new AsyncTask<Object, Object, Object>() 
                   {
                      @Override
                      protected Object doInBackground(Object... params) 
                      {
                         saveContact();
                         return null;
                      }

                      @Override
                      protected void onPostExecute(Object result) 
                      {
                         finish();
                      }
                   }; 

                saveContactTask.execute((Object[]) null); 
             }

             else
             {
                AlertDialog.Builder alert = new AlertDialog.Builder(AddEditCountry.this);
                alert.setTitle(R.string.errorTitle); 
                alert.setMessage(R.string.errorMessage);
                alert.setPositiveButton(R.string.errorButton, null); 
                alert.show();
             }
          } 
     });
   }

   private void saveContact() 
   {
      DatabaseConnector dbConnector = new DatabaseConnector(this);

      if (getIntent().getExtras() == null)
      {
          dbConnector.insertContact(nameEt.getText().toString(),
                  capEt.getText().toString(),
                  timeEt.getCurrentHour().toString(),
                  codeEt.getText().toString());
      }
      else
      {
         dbConnector.updateContact(rowID,
            nameEt.getText().toString(),
            capEt.getText().toString(),
            timeEt.getCurrentHour().toString(),
            codeEt.getText().toString());
      }
   }
}

2 个答案:

答案 0 :(得分:1)

问题是setCurrentHour()需要一个Integer,但是通过调用getString()传递一个String,并且正如错误所述,没有setCurrentHour(String)的方法。

你没有告诉我们Intent的额外设置在哪里,所以这个解决方案是猜测。但试试:

timeEt.setCurrentHour(extras.getInt("time"));

答案 1 :(得分:0)

如果extras对象没有getInt()方法,请尝试以下操作:timeEt.setCurrentHour(Integer.valueof(extras.getString("time")));