2013-03-21 1 views
-1

У кого-нибудь есть идея, почему я могу получить эту ошибку?Метод setCurrentMinute (Integer) в типе TimePicker не применим для аргументов (String)

Все, что я пытаюсь сделать, это сохранить час, выбранный таймпикером ... Я уверен, что это что-то простое, что я забыл.

Любая помощь с благодарностью!

Амани 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

Не ясно сообщение? Вы не можете передать String в setCurrentMinute(), потому что он принимает int как аргумент. –

ответ

1

Проблема заключается в том, что setCurrentHour() ожидает целое, но по телефону getString() вы передаете строку и, как ошибочные состояния, не существует никакого метода для setCurrentHour(String).

Вы не сообщите нам, где установлены дополнительные функции Intent, поэтому это решение является предположением. Но попробуйте:

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

Удивительно, что помогло - спасибо! – NoobNinja

0

Если массовка объект не имеет метод getInt(), попробовать что-то вроде: timeEt.setCurrentHour(Integer.valueof(extras.getString("time")));

+0

Bundle имеет ['getInt()'] (https://developer.android.com/reference/android/os/Bundle.html#getInt%28java.lang.String%29). Хотя вы можете преобразовать Integer в String, а затем вернуться к Integer, я предпочитаю пропускать циклический тип данных. – Sam