-4
Asynタスクを開始するビューでOn Long Click Listenerを設定しましたが、それはクラッシュします( )。私は同じビューでOn Click Listenerを設定し、その が正しく動作しています。私のコードは以下の通りです: プライベートビューマイナスボタン;onLongClickListenerがクラッシュします
AsyncTask repeatDecrement;
boolean minusIsPressed=false;
public void decrementValue()
{
int currentValue=Integer.valueOf(valueTextView.getText().toString());
if(currentValue>this.minValue)valueTextView.setText(String.valueOf(currentValue-1));
}
minusButton.setOnLongClickListener(new OnLongClickListener()
{
@Override
public boolean onLongClick(View v)
{
minusIsPressed=true;
repeatDecrement=new repeatDecrement(ValueSelector.this);
repeatDecrement.execute();
return false;
}
});
public static class repeatDecrement extends AsyncTask<Void, Void, Void>
{
ValueSelector object;
public repeatDecrement(ValueSelector object)
{
this.object=object;
}
public void onPreExecute()
{
}
public Void doInBackground(Void...voids)
{
while(object.minusIsPressed)
publishProgress();
SystemClock.sleep(500);
return null;
}
public void onProgressUpdate(Void...voids)
{
object.decrementValue();
}
public void onPostExecute(Void unsused)
{
}
}
以下のエラーログ:
04-11 12:16:14.480: E/AndroidRuntime(24372): FATAL EXCEPTION: AsyncTask #1
04-11 12:16:14.480: E/AndroidRuntime(24372): java.lang.RuntimeException: An error occured while executing doInBackground()
04-11 12:16:14.480: E/AndroidRuntime(24372): at android.os.AsyncTask$3.done(AsyncTask.java:278)
04-11 12:16:14.480: E/AndroidRuntime(24372): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
04-11 12:16:14.480: E/AndroidRuntime(24372): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
04-11 12:16:14.480: E/AndroidRuntime(24372): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
04-11 12:16:14.480: E/AndroidRuntime(24372): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
04-11 12:16:14.480: E/AndroidRuntime(24372): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
04-11 12:16:14.480: E/AndroidRuntime(24372): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
04-11 12:16:14.480: E/AndroidRuntime(24372): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
04-11 12:16:14.480: E/AndroidRuntime(24372): at java.lang.Thread.run(Thread.java:856)
04-11 12:16:14.480: E/AndroidRuntime(24372): Caused by: java.lang.ClassCastException: java.lang.Object[] cannot be cast to java.lang.Void[]
04-11 12:16:14.480: E/AndroidRuntime(24372): at com.example.customviewgood.ValueSelector$repeatIncrement.doInBackground(ValueSelector.java:1)
04-11 12:16:14.480: E/AndroidRuntime(24372): at android.os.AsyncTask$2.call(AsyncTask.java:264)
04-11 12:16:14.480: E/AndroidRuntime(24372): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
04-11 12:16:14.480: E/AndroidRuntime(24372): ... 5 more
04-11 12:16:15.430: D/OpenGLRenderer(24372): Flushing caches (mode 0)
04-11 12:16:17.830: D/OpenGLRenderer(24372): Flushing caches (mode 2)
04-11 12:16:17.900: D/OpenGLRenderer(24372): Flushing caches (mode 0)
writestack – Vyacheslav
エラーログを出力できますか? –
投稿エラーログ.. – FAT