반응형
핸들러가 추상적이므로 인스턴스화할 수 없습니다.
를 사용하려고 합니다.Handler
내 앱에서.그러나 이렇게 인스턴스화하면:
Handler handler = new Handler();
다음의 에러가 표시됩니다.
그라들: 오류: 핸들러가 추상적이어서 인스턴스화할 수 없습니다.
또, 솔루션을 확인하면, 다음의 방법을 실장하도록 요구됩니다.
Handler handler = new Handler() {
@Override
public void close() {
}
@Override
public void flush() {
}
@Override
public void publish(LogRecord record) {
}
};
사용한 적이 없다Handlers
조금 늦어진 후에 메서드를 호출하기 위해 사용하고 있습니다.이를 위해 저는 다음을 사용했습니다.
handler.postDelayed(new Runnable() {
@Override
public void run() {
//Do something after 100ms
}
}, 100);
그러나 다음과 같은 오류가 표시됩니다.
그라들: 오류: 기호 메서드 postDelayed(),int)를 찾을 수 없습니다.
잘못된 핸들러 클래스를 가져온 것 같습니다.
import java.util.logging.Handler;
로 변경하다
import android.os.Handler;
인스톨 대상
import java.util.logging.Handler;
더하다
import android.os.Handler;
또, 을 사용하는 경우
Handler handler = new Handler() {
@Override
public void close() {
}
@Override
public void flush() {
}
@Override
public void publish(LogRecord record) {
}
};
부울이 에러와 같은 것을 발견했다는 에러를 나타내므로, 부울 핸들러 = new Handler()... 또는 단순히 (new Handler(){...)를 사용합니다.`
Android SDK가 잘못된 SDK를 자동으로 가져옵니다.그래서 사람들이 문제가 있는 거야.
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class ActionActivity extends ActionBarActivity {
final String LOG_TAG = "myLogs";
TextView tvInfo;
Button btnStart;
Handler h;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.action_activity);
tvInfo = (TextView)findViewById(R.id.tvinfo);
btnStart = (Button)findViewById(R.id.btnstart);
h = new Handler() {
public void handleMessage(android.os.Message msg) {
// update TextView
tvInfo.setText("Закачано файлов: " + msg.what);
if (msg.what == 10) btnStart.setEnabled(true);
};
};
}
public void onclick(View v) {
switch (v.getId()) {
case R.id.btnstart:
btnStart.setEnabled(false);
Thread t = new Thread(new Runnable() {
public void run() {
for (int i = 1; i <= 10; i++) {
// some process
downloadFile();
h.sendEmptyMessage(i);
Log.d(LOG_TAG, "i = " + i);
}
}
});
t.start();
break;
case R.id.btnTets:
Log.d(LOG_TAG, "test");
break;
default:
break;
}
}
public void downloadFile(){
try{
TimeUnit.SECONDS.sleep(1);
}
catch (InterruptedException e){
e.printStackTrace();
};
}
}
잘못된 핸들러 클래스를 구현한 것 같습니다.
import java.util.logging.Handler;
로 변경하다
import android.os.Handler;
import Android.os.핸들러. 목적에 필요한 핸들러입니다.Handler 클래스를 Import하기 전에 위의 내용을 Import해 보십시오.
언급URL : https://stackoverflow.com/questions/19873063/handler-is-abstract-cannot-be-instantiated
반응형
'programing' 카테고리의 다른 글
장고에서 '슬렁'이 뭐죠? (0) | 2022.09.06 |
---|---|
MySQL SELECT를 사용하여 가상 열을 생성하는 방법 (0) | 2022.09.06 |
GIS: PostGIS/PostgreSQL vs. MySql vs.SQL Server? (0) | 2022.09.06 |
마리아에 대한 속편 오류DB (0) | 2022.09.06 |
"java.net"을 해결 방법Bind Exception:이미 사용 중인 주소: JVM_Bind" 오류입니까? (0) | 2022.09.06 |