开发者社区> 问答> 正文

为什么往dialog里setView ,里面的View设置监听器无效:报错

 

如图所示 我往一个Dialog里面setView()  大的TableLayout里面放置了一个TableLayout 

我现在为“1”的那个TextView设置监听器  但是设置以后点击无反应  这是为什么呢

下面贴出相关代码

1、里面的logView就是那个View

View logView = myInflater.inflate(R.layout.add_course_weeks_dialog, null);

    log = new AlertDialog.Builder(AddCourseAC.this).setView(logView)
      .setPositiveButton("取消", new DialogInterface.OnClickListener() {
       
       @Override
       public void onClick(DialogInterface dialog, int which) {
        // TODO Auto-generated method stub
        log.dismiss();
       }
      }).setNegativeButton("确定", new DialogInterface.OnClickListener(){

       @Override
       public void onClick(DialogInterface dialog,
         int which) {
        // TODO Auto-generated method stub
        log.dismiss();
       }
       
      }).create();
    
    log.show();

 

2、实例化“1”TextView并设置监听器

add_course_week1 = (TextView) myInflater.inflate(R.layout.add_course_weeks_dialog, null).findViewById(R.id.add_course_week1);

 

add_course_week1.setOnClickListener(new selectWeek());

 

监听器-

public class selectWeek implements OnClickListener{

  @Override
  public void onClick(View v) {
   // TODO Auto-generated method stub
   Toast.makeText(AddCourseAC.this, "监听器", Toast.LENGTH_SHORT).show();
   Drawable color = v.getBackground();
   if(((String)v.getTag()).equals("NotSelected")){
    v.setBackgroundColor(Color.BLUE);
    v.setTag("HaveSelected");
   }else if(((String)v.getTag()).equals("HaveSelected")){
    v.setBackground(color);
    v.setTag("NotSelected");
   }
  }

上面的红字代码并没有运行到

这是怎么回事呢? 求大神

 

展开
收起
kun坤 2020-06-14 17:58:12 1217 0
1 条回答
写回答
取消 提交回答
  • 好吧  是我自己粗心了  被实例化的TextView不是dialog里面的TextView,而是另外的TextView = =

    2020-06-14 17:58:26
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载