【问题标题】:Android Listview text colour white onCreateView(instead of black)Android Listview 文本颜色白色 onCreateView(而不是黑色)
【发布时间】:2014-05-15 03:23:55
【问题描述】:

附上两张照片,一张是在应用启动时使用 onCreateView 填充列表(白色文本),另一张是在调用 SetList() 方法时

http://i.stack.imgur.com/QHNEL.png

        public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_main, container, false);
        ListView lv = (ListView) rootView.findViewById(R.id.listView1);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(((MainActivity)getActivity()).getApplicationContext(), android.R.layout.simple_list_item_1,((MainActivity)getActivity()).Logs);
        lv.setAdapter(adapter);
        return rootView;
    }

http://i.stack.imgur.com/8uTe1.png

    public void SetList()
{
    ListView lv = (ListView) findViewById(R.id.listView1);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,Logs);
    lv.setAdapter(adapter);
}

【问题讨论】:

    标签: java android android-listview


    【解决方案1】:

    问题通过改变解决 ArrayAdapter&lt;String&gt; adapter = new ArrayAdapter&lt;String&gt;(((MainActivity)getActivity()).getApplicationContext(), android.R.layout.simple_list_item_1,((MainActivity)getActivity()).Logs);

    ArrayAdapter&lt;String&gt; adapter = new ArrayAdapter&lt;String&gt;(((MainActivity)getActivity()).getBaseContext(), android.R.layout.simple_list_item_1,((MainActivity)getActivity()).Logs);

    似乎出于某种原因,((MainActivity)getActivity()).getApplicationContext() 返回的默认文本颜色与 ((MainActivity)getActivity()).getBaseContext() 不同

    【讨论】:

      【解决方案2】:

      改变

      ArrayAdapter<String> adapter = new ArrayAdapter<String>(((MainActivity)getActivity()).getApplicationContext(), android.R.layout.simple_selectable_list_item,((MainActivity)getActivity()).Logs);
      

      ArrayAdapter<String> adapter = new ArrayAdapter<String>(((MainActivity)getActivity()).getApplicationContext(), android.R.layout.simple_list_item_1,((MainActivity)getActivity()).Logs);
      

      onCreateView。问题是您在适配器中使用了 2 种不同的布局。第一次使用android.R.layout.simple_list_item_1 应该也会给你TextView 和黑色文本。

      【讨论】:

      • 我似乎已经复制了一个我正在尝试修复 OP 的版本以反映这一点
      • 您是否尝试在将两个适配器都设置为android.R.layout.simple_list_item_1 后运行?
      • 我确实发生了同样的问题。
      【解决方案3】:

      试试这个,覆盖 getView 方法并像这样设置文本颜色

       countryadapter = new ArrayAdapter<String>(CreateGroupsActivity.this,
                  android.R.layout.simple_spinner_item,
                  CommonListClass.countryName) {
              @Override
              public View getView(int position, View convertView, ViewGroup parent) {
                  // TODO Auto-generated method stub
                  View v = super.getView(position, convertView, parent);
                  ((TextView) v).setTextColor(getResources().getColor(R.color.black_color));
                  return v;
              }
      
              @Override
              public View getDropDownView(int position, View convertView,
                      ViewGroup parent) {
                  // TODO Auto-generated method stub
                  View v = super.getDropDownView(position, convertView, parent);
                  ((TextView) v).setTextColor(getResources().getColor(R.color.black_color));
                  return v;
              }
          };
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多