首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >活动和视图接口实现中的错误

活动和视图接口实现中的错误
EN

Stack Overflow用户
提问于 2016-04-15 14:24:48
回答 1查看 25关注 0票数 0

我正试图在我的MyActivity中获得一个来自视图MyViewint。在我的活动中,我有以下内容:

代码语言:javascript
运行
复制
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包含以下代码:

代码语言:javascript
运行
复制
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.Application不能在com.example.ex.myView上转换为com.example.ex.myView$GetCallBack。(myView.java:49)

我知道错误与上下文有关,但我仍然没有找到纠正错误的方法,

任何想法都会很感激的!)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-15 14:25:46

您已经在interface中实现了myActivity,但是您正在传递应用程序上下文。这就是为什么你要得到ClassCastException。传递myActivity.this,所以尝试如下:

代码语言:javascript
运行
复制
surface.addView(new MyView(MyActivity.this);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36649811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档