MyActivity
int
をMyView
から取得しようとしています。私の活動では、私は次のようしている:アクティビティとビューの間のインターフェイスの実装でエラーが発生しました
public class MyActivity extends AppCompatActivity implements MyView.GetCallBack {
final MyActivity context = this;
private AsyncTask<Void, Void, Void> task;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second_act);
task = new myTask();
task.execute();
}
@Override
public void onPercentageReceived(int msg){
// you have got your msg here.
}
public class MyTask extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... params) {
}
@Override
protected void onPostExecute(Void result) {
LinearLayout surface = (LinearLayout) findViewById(R.id.surfaceView);
surface.addView(new MyView(getApplicationContext()));
surface.setBackgroundColor(Color.BLACK);
}
}
今MyView
は、次のコードが含まれています
public class MyView extends View {
final MyView context = this;
private GetCallBack callback;
// Constructor
public PlacingBoxView(Context context) {
super(context);
callback = (GetCallBack) context;
}
@Override
protected void onDraw(Canvas canvas) {
dataPercentage(Percentage);
}
public void dataPercentage(int Percentage){
callback.onPercentageReceived(Percentage);
}
public interface GetCallBack{
void onPercentageReceived(int msg);
}
私は問題なくコードをコンパイルすることができますが、LogCatに、私は以下の間違いを得る:
を致命的除外:メイン プロセス:com.example.ex、PID:8035 java.lang.ClassCastException:android.app.Appliカチオンはcom.example.ex.myViewでcom.example.ex.myView $ GetCallBack に をキャストすることはできません。(myView.java:49)
私はエラーがコンテキストに関連しているけど、私まだそれを修正する方法を見つけていない、
本当にありがとう! :)
首都を変更;) – Alvaro
'myView'もMyView''に変更する必要があります。 –