当前位置: 首页 > 知识库问答 >
问题:

Android自定义ArrayAdapter

文建业
2023-03-14

不管怎样,关于我的问题:有人愿意编写一个非常、非常、非常、通用、直接和简单的自定义ArrayAdapter,该ArrayAdapter需要两个字符串值,可以与ListView一起使用吗?…或者,尝试调试我的尝试,希望找到我的问题所在。

任何帮助都很感激,谢谢。

我已经包括了我知道需要的代码,但我一直在与其他所有东西罢工。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
     tools:context=".LoginActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="Please wait.."
        android:layout_weight="1"
        android:id="@+id/txtFieldName" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="Please wait.."
        android:id="@+id/txtFieldValue" />
</LinearLayout>
public class CustomListViewAdapter extends ArrayAdapter<String> {
    private final Context context;
    private final String[] fieldNames;
    private final String[] fieldValues;


    public CustomListViewAdapter(Context context, String[] fieldNames, String[] fieldValues) {
        super(context, R.layout.custom_listview, fieldNames, fieldValues);
        this.context = context;
        this.fieldNames = fieldNames;
        this.fieldValues= fieldValues;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        View rowView = inflater.inflate(R.layout.custom_listview, parent, false);
        TextView txtField= (TextView) rowView.findViewById(R.id.txtFieldName);
        TextView txtValue= (TextView) rowView.findViewById(R.id.txtFieldValue);
        txtField.setText(fieldNames[position]);
        txtValue.setText(fieldValues[position]);

        return rowView;
    }
}
public class MainActivity extends ListActivity {


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setListAdapter(new CustomListViewAdapter(this, "myTestField", "myTestValue"));

    }


}

错误:(20,9)错误:没有为ArrayAdapter找到合适的构造函数(上下文,int,string[],string[])构造函数ArrayAdapter(上下文,int,int,List)不适用(实际参数字符串[]不能通过方法调用转换转换为int)构造函数ArrayAdapter(上下文,int,List)不适用(实际参数字符串[]不能通过方法调用转换转换为int)构造函数ArrayAdapter(实际参数字符串[]不能通过方法调用转换转换为int)构造函数ArrayAdapter(上下文,int,int,string[])不适用(实际参数字符串[]不能通过方法调用转换转换为int)构造函数ArrayAdapter(上下文,int,string[])不适用(实际参数列表长度不同)构造函数ArrayAdapter(上下文不适用(实际和正式参数列表长度不同)构造函数ArrayAdapter.ArrayAdapter(Context,int)不适用(实际和正式参数列表长度不同)

共有1个答案

齐承泽
2023-03-14

您得到的错误是因为您在构造函数上调用super(context,r.layout.custom_listview,fieldNames,fieldValues);,而没有这样的构造函数接受ArrayAdapter类可用的两个String[]参数。

您应该在这里查看ArrayAdapter的文档,并在子类中找到一个合适的构造函数。例如:

public CustomListViewAdapter(Context context, String[] fieldNames, String[] fieldValues) {
        super(context, R.layout.custom_listview);
        ...
    }

编辑:这里是关于ListViewArrayAdapters的好教程。

 类似资料:
  • 在自定义arrayAdapter中实现自定义getFilter时遇到问题。实际上,我不知道如何实现它。尝试了各种代码,但仍然没有成功。这是我的自定义阵列适配器。 这是ListTO课程。 这是布局图。 这里的搜索关键字来自“inputSearch”编辑文本。 这是文本更改的侦听器。 谢谢

  • 问题内容: 我浏览了教程并进行了搜索,但仍然不明白该怎么做, 当扩展在我的android应用程序中创建自定义listView 时,此方法有效。因此,我无法完全按照需要编辑“自定义”列表视图。 我需要知道何时调用此方法以及参数的含义。 如果有人可以解释以下方法很好。谢谢 问题答案: getView() :如规范中所述,getView方法将数据显示在指定位置。因此,当您设置适配器并滚动时,将调用lis

  • 问题内容: 我想在锻炼应用程序中实现自定义RatingBar。条形图应具有4星,并且步长为1。布局如下所示: 我想用自定义图像替换默认的星星。但是,四颗星中的每一个都应该具有不同的图像: 星号1 =“ X”,表示“此项目已禁用” 星号2 =拇指朝下 星号3 =代表“中立等级”的事物 星号4 =大拇指 另外,例如,当该商品的等级为3(中性等级)时,所有其他星星(1,2和4)应显示其图像的灰色版本。

  • 我刚接触android,我被一些我认为很简单的东西弄糊涂了…我需要制作一个自定义searchView而不是在ActionBar/Toolbar中,而是在我的RelativeLayout中。问题是我不知道如何定制背景、文本输入颜色、XML中的搜索图标颜色,或者仅仅是它们的属性。此刻,我在我的电话,不能显示我的代码。有人告诉我如何定制吗?给我看任何我能看的教程?提前致谢!!!!

  • 问题内容: 是否有任何已知的组合上,将给予一个民垫键盘有特殊字符如,,和。我试图允许用户输入一个数字,并且该字段也可以采用上述字符。我尝试了很多,但似乎都没有提供所需的输出。 为此,我需要创建自己的自定义键盘吗?由于我的要求非常特定于某些特殊字符,请不要将此问题标记为重复的问题。提前致谢。 问题答案: 您可以根据需要使用KeyboardView进行自定义。 其中 R.xml.customLayou

  • > 标高,同时具有自定义可绘制。 在用户触摸的地方启动涟漪效果。