【问题标题】:How to pass 'this' to class for creating dynamically Views?如何将“this”传递给类以创建动态视图?
【发布时间】:2017-02-20 20:07:26
【问题描述】:

在我的项目中,我有一个用于创建动态视图的类,如 TextViews,但我想通过 setonCLickListner 在视图中单击,但此参数是有效的(this、Activity 和 Activity.getApplicationContext)

我的代码:

public a(Activity context , List<Arr> myarraylist){

       for (Array w : myarraylist) {

                    TextView textView = new TextView(context);

                    textView.setText(w.getW_text());
                    textView.setId(w.getW_id());
                    textView.setTag(w.getW_id());
                    textView.setTextColor(Color.parseColor("#000000"));


                    textView.setOnClickListener((View.OnClickListener) context.getApplicationContext());

                    //  textView.setOnClickListener(btnClickListener);
                    linearLayout.addView(textView);
                }
}

我得到了错误: java.lang.ClassCastException: android.app.Application 无法转换为 android.view.View$OnClickListener

我的问题是如何将此对象传递给 java 类,并在单击 anyview 后,将值返回给 onClickListner 中的活动

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

   @Override
    public void onClick(View v) {



        LinearLayout ll = (LinearLayout) v.getParent();
        TextView tv = (TextView) ll.getChildAt(2);

        tv.setTextColor(Color.parseColor("#00ddff"));



    }

【问题讨论】:

标签: android android-view


【解决方案1】:

textView.setOnClickListener((View.OnClickListener) context.getApplicationContext()); 替换为textView.setOnClickListener((View.OnClickListener) context);

【讨论】:

    猜你喜欢
    • 2013-11-25
    • 2020-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-10
    • 1970-01-01
    • 2010-12-16
    • 1970-01-01
    相关资源
    最近更新 更多