【问题标题】:Cant change listview font in listactivity无法更改列表活动中的列表视图字体
【发布时间】:2014-10-17 15:15:38
【问题描述】:

我是 android 编程的新手,我的任务是将共享偏好中的项目加载到列表视图中,我只想更改列表视图的设计,例如更改其字体颜色、字体大小等。 .我已经尝试过这个解决方案,但它不起作用,请告诉我我做错了什么。谢谢.. 这是我在列表活动中加载列表视图的代码

Map<String,?> datakeys = datapref.getAll();
    for(Map.Entry<String,?> entry : datakeys.entrySet()){
        Log.d("values123",entry.getKey() + ": " + entry.getValue().toString());    
        lvlist.add(entry.getValue().toString());}
    lvadapter  = new ArrayAdapter<String>(this, R.layout.mytextview , R.id.text1, lvlist);
    //lvadapter = new ArrayAdapter<String> (this,android.R.layout.simple_list_item_1,android.R.id.text1, lvlist);
    setListAdapter(lvadapter);

这里是 mytextview xml..

     <?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
            android:id="@+id/text1"  
            android:paddingTop="2dip" 
            android:paddingBottom="3dip" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:textSize="10dip"
        android:textColor="#666666"
        android:textStyle="italic" />  

和我的列表视图 xml

<ListView
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_above="@+id/button3"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/textView3"
    android:background="#b6fcd5" >

</ListView>

这是屏幕截图

【问题讨论】:

  • 你说的不起作用是什么意思?你有什么错误吗?
  • 我的列表视图中没有看到任何变化
  • 附上截图
  • 更改 ArrayAdpter 行 @AyamSakata 并更改 TextView 的 id

标签: android listview android-listview


【解决方案1】:

你需要ArrayAdapter的其他构造函数:

public ArrayAdapter (Context context, int resource, int textViewResourceId, T[] objects) 

所以将此行更改为:

lvadapter = new ArrayAdapter<String>(this, R.layout.mytextview, lvlist);

收件人:

lvadapter  = new ArrayAdapter<String>(this, R.layout.mytextview , R.id.text1, lvlist);

还有mytextview xml

 <?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
        android:id="@+id/text1"  
        android:paddingTop="2dip" 
        android:paddingBottom="3dip" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:textSize="10dip"
        android:textColor="#666666"
        android:textStyle="italic" /> 

如果这不起作用,请使用Custom Adapter

【讨论】:

  • 我按照你的建议做了,但它看起来仍然像屏幕截图上的那样......没有任何改变
  • 更换了适配器??还有 mytextview.xml 呢??
  • 那么最好使用自定义适配器
  • 我根据你的建议编辑了我的问题,我真的不知道为什么它仍然不起作用..
【解决方案2】:

另一种方法:看看

 String [] yourStringarrayorlist= {"Lionssss","Cats", "yeaaahhh :)"};

        ListView listView =new ListView(
                    getApplicationContext()); 
        listView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, yourStringarrayorlist) {
                    @Override
                    public View getView(int position, View convertView, ViewGroup parent) {
                        TextView textView = (TextView) super.getView(position, convertView, parent);

                      // if you want to change any specific items color
                        int textColor = textView.getText().toString().equals("Cats") ? R.color.any : android.R.color.black;
                        textView.setTextColor(VideoviewActivity.this.getResources().getColor(textColor));

                       //If you want to change the text color of all use below code
                       // textView.setTextColor(VideoviewActivity.this.getResources().getColor( R.color.any));


                        return textView;
                    }
                });
    layoutrela.addView(listView);

您可以轻松更改文本颜色。然而,只是为了检查我已经通过代码创建了 ListView 并添加到布局中:) 但它的工作原理非常棒.. 灵感来源:How to change text color of simple list item 不是一个新的答案,所以我不希望有任何投票左右。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-30
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-25
    • 1970-01-01
    相关资源
    最近更新 更多