Как передать примитивный int в мою AsyncTask?

Я хочу передать одну переменную int моей AsyncTask .

 int position = 5; 

И я объявил свою AsyncTask следующим образом:

 class proveAsync extends AsyncTask<int, Integer, Void> { protected void onPreExecute(){ } protected Void doInBackground(int... position) { } . . . 

Но я получил сообщение об ошибке:

Аргумент типа не может быть примитивного типа

Я просто мог передать переменные int[] и Integer но никогда не был переменной int и я выполняю свою AsyncTask следующим образом:

 new proveAsync().execute(position); 

Есть ли что-то, что я мог бы сделать, чтобы пройти только эту position ?

Заранее спасибо!

Передайте свой параметр как Integer

 class proveAsync extends AsyncTask<Integer, Integer, Void> { protected void onPreExecute(){ } protected Void doInBackground(Integer... position) { int post = position[0].intValue(); } . . . 

Выполняя это

 new proveAsync().execute(new Integer(position)); 

Вы можете получить значение int в AsyncTask используя intValue()

Вы также можете использовать конструктор AsyncTask.

 class proveAsync extends AsyncTask<Void, Void, Void> { int position; public proveAsync(int pos){ position = pos; } protected void onPreExecute(){ } protected Void doInBackground(Void... args) { } . . 

Затем используйте его как:

 new proveAsync(position).execute(); 

И вы можете передать что-либо как требование без изменения типа возврата и аргументов таким образом.

Используйте его так.

 class proveAsync extends AsyncTask<Integer, Void, Void> { protected void onPreExecute(){ } protected Void doInBackground(Integer... params) { int position = params[0]; ... 

Переместить позицию в массив. например:

 Integer[] asyncArray = new Integer[1]; asyncArray[0] = position; new proveAsync().execute(asyncArray); 
Intereting Posts