2014-10-19 48 views
-1

好吧,所以我没有足够的空间标题来解释这一点,但我有一个ListView与自定义适配器,并在子视图我有一个textview。当我显示一个警告对话框并单击肯定按钮时,我试图更改该textview的可见性,并且我的代码不会更改可见性。更改alertDialog上的textView正面按钮的可见性

alert.setPositiveButton("Send", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        EditText editMsg = (EditText)view.findViewById(R.id.editMsg); 
        String msg = editMsg.getText().toString().trim(); 
        if (!msg.isEmpty()) { 
         // show message test 
         if (name.equals("Contact 0")) { 
          View v = listView.getAdapter().getView(0, null, null); 
          TextView tvMsg = (TextView)v.findViewById(R.id.tvMsg); 
          tvMsg.setText(msg); 
          tvMsg.setVisibility(View.VISIBLE); 
         } 
        } 
       } 
      }); 

是越来越被正确执行的代码,是的,我一直试图做的setText和adapter.notifyDataSetChanged,然后在adapter.getView改变的知名度,如果的getText> 0

似乎一切是正确的,它的v是正确的视图,我可以阅读其他子视图来确认它的权利,setText正在工作,但setVisibility不是?为什么我无法更改可见性?

+0

究竟是什么问题?您的文本现在是否可见或其他// – Akshay 2014-10-19 05:47:30

+0

首先,检查您的文本颜色和列表视图背景颜色是不同的。 – Akshay 2014-10-19 05:49:28

+0

问题是它不会变得可见。颜色不是问题。虽然欣赏了回应。 – user1974977 2014-10-19 06:33:02

回答

0

我已经想通了。似乎问题在于调用listView.getAdapter()。getView()。

用listView.getChildAt(int pos)替换,一切正常。

1

因为,当调用xml文件的适配器被再次初始化时,可能是TextView隐藏在您的xml文件中。所以,我的建议是:

把一个全局变量,说吧global_var;

将以下代码写入适配器的getView()方法。

if(global_var){ 
    tvMsg.setVisibility(View.VISIBLE); 
} else{ 
    tvMsg.setVisibility(View.GONE); 
} 

而在这个代码:

alert.setPositiveButton("Send", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        EditText editMsg = (EditText)view.findViewById(R.id.editMsg); 
        String msg = editMsg.getText().toString().trim(); 
        if (!msg.isEmpty()) { 
         // show message test 
         if (name.equals("Contact 0")) { 
          ..... 
          ..... 
          global_var = true// or something; 
         } 
        } 
       } 
      }); 

最后调用此:

adapter.notifyDataSetChanged(); 

我认为这会工作..

+0

我试过这个。不起作用。我忘记提及,我试图在相对布局中将这个textview覆盖在图像视图上。也许这就是问题,今天会做更多的测试。 – user1974977 2014-10-19 16:59:45

相关问题