在android中更改listview的文本大小

在android中更改listview的文本大小,android,android-layout,listview,layout,android-listview,Android,Android Layout,Listview,Layout,Android Listview,我试图更改listview文本大小(默认情况下它看起来相当大),但遇到了一个错误。我认为这样做的目的是为listview分配一个textview,并更改该textview的属性,但我开始认为这样做是错误的。如果有人不介意看一眼我做错了什么,我将不胜感激。提前谢谢 以下是错误: 12-03 21:59:26.894 24751-24751/my.obd2connector E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: my.obd2co

我试图更改listview文本大小(默认情况下它看起来相当大),但遇到了一个错误。我认为这样做的目的是为listview分配一个textview,并更改该textview的属性,但我开始认为这样做是错误的。如果有人不介意看一眼我做错了什么,我将不胜感激。提前谢谢

以下是错误:

12-03 21:59:26.894  24751-24751/my.obd2connector E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: my.obd2connector, PID: 24751
    java.lang.RuntimeException: Unable to start activity ComponentInfo{my.obd2connector/my.obd2connector.MyCar}: java.lang.ClassCastException: android.widget.ArrayAdapter cannot be cast to android.widget.TextView
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2305)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2363)
            at android.app.ActivityThread.access$900(ActivityThread.java:161)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1265)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:157)
            at android.app.ActivityThread.main(ActivityThread.java:5356)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.ClassCastException: android.widget.ArrayAdapter cannot be cast to android.widget.TextView
            at my.obd2connector.MyCar.fillList(MyCar.java:120)
            at my.obd2connector.MyCar.onStart(MyCar.java:92)
            at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1189)
            at android.app.Activity.performStart(Activity.java:5436)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2363)
            at android.app.ActivityThread.access$900(ActivityThread.java:161)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1265)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:157)
            at android.app.ActivityThread.main(ActivityThread.java:5356)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
            at dalvik.system.NativeStart.main(Native Method)
下面是填充listview的代码,我试图在其中更改大小和颜色:

public void fillList() {   
        carList.add(make + " " + model + "\n" + vin);

        mylistAdapter = new ArrayAdapter<String>(MyCar.this, android.R.layout.simple_list_item_single_choice, carList);

        mylistView.setAdapter(mylistAdapter);
        TextView tv = (TextView)mylistView.getAdapter();
        tv.setTextColor(Color.RED);
        tv.setTextSize(12);
        mylistAdapter.notifyDataSetChanged();
    }
public void fillList(){
添加(品牌+“”+车型+“\n”+vin);
mylistAdapter=new ArrayAdapter(MyCar.this,android.R.layout.simple\u list\u item\u single\u choice,carList);
设置适配器(mylistAdapter);
TextView tv=(TextView)mylistView.getAdapter();
tv.setTextColor(颜色:红色);
电视节目(12);
mylistAdapter.notifyDataSetChanged();
}
行:

 TextView tv = (TextView)mylistView.getAdapter();
这是问题的根源。你不能对一个角色施放一个角色。相反,您需要为ListView创建自定义布局,并在其中更改布局上使用的TextView的属性


介绍创建简单自定义布局的详细信息。

只需将ListView的默认布局更改为自定义布局即可

而不是像这样使用:

adapter = new ArrayAdapter<String>(this, android.R.layout.simple_listview_item, list);
adapter=newarrayadapter(这个,android.R.layout.simple\u listview\u项目,列表);
您可以使用customLayout.xml:

adapter = new ArrayAdapter<String>(this, R.layout.customLayout, list);
adapter=newarrayadapter(这个,R.layout.customLayout,列表);
customLayout.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/listTextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:textSize="20dp" />

或者您可以这样使用:

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

    return textView;
}
listView.setAdapter(新的ArrayAdapter(这个,android.R.layout.simple_list_item_1,MobileMuni.getBookmarkStore().getRecentLocations()){
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
TextView TextView=(TextView)super.getView(position,convertView,parent);
textView.setTextSize(12);
返回文本视图;
}

}))

如果需要更改列表项的视图大小。您可以在listitem的xml文件中执行此操作,并将其传递给适配器


注意:TextView id应该分配android.R.id.text1

您的路径正确

 mylistAdapter = new ArrayAdapter<String> ( this, android.R.layout, list );
mylistAdapter=新的ArrayAdapter(这个,android.R.layout,列表);
也可以试试

mylistAdapter = new ArrayAdapter<String>  (this, android.R.layout.simple_listview_item, android.R.id.listTextView , list); 
mylistAdapter=新的ArrayAdapter(这个,android.R.layout.simple\u列表视图项目,android.R.id.listTextView,列表);

您正在使用哪个适配器?其:公共阵列适配器mylistAdapter;我需要这个来填充字符串的列表视图。我已经尝试过这个。。。每当我制作自定义布局时,当我键入android.R.layout时,它不会显示。它似乎只显示简单的项目和其他项目。是否有某个文件夹可以识别它?您可以使用第二个示例我在filllist方法中执行setAdapter()后会调用它?您可以像这样在listview中设置适配器我当然希望在我第一次启动lol时看到此教程,谢谢先生。