Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android simple ArrayAdapter from String[]_Android_Android Arrayadapter - Fatal编程技术网

Android simple ArrayAdapter from String[]

Android simple ArrayAdapter from String[],android,android-arrayadapter,Android,Android Arrayadapter,我可以从类结构编写简单数组适配器,但现在我想从字符串编写简单数组适配器,在我的应用程序中,我的简单数组如下所示: private String[] panelNumbers; panelNumbers = G.getActiveUserInfo().phoneNumbers.split(","); 对于“将此数组显示到Listview”、“与RadioButton合并的数组项”、“我的xml布局”: <?xml version="1.0" encoding="utf-8"?> &

我可以从类结构编写简单数组适配器,但现在我想从字符串编写简单数组适配器,在我的应用程序中,我的简单数组如下所示:

private String[]  panelNumbers;
panelNumbers = G.getActiveUserInfo().phoneNumbers.split(",");
对于“将此数组显示到Listview”、“与RadioButton合并的数组项”、“我的xml布局”:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ffffff"
    android:orientation="vertical" >

    <RadioButton
        android:id="@+id/radio1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:checkMark="@android:drawable/btn_radio"
        android:gravity="right|center_vertical"
        android:text="xcgdf"
        android:textColor="@color/black_text" />

    <TextView
        android:id="@+id/text1"
        android:layout_width="fill_parent"
        android:layout_height="1dp"
        android:background="@drawable/gradient_divider"
        android:text="Medium Text"
        android:textAppearance="?android:attr/textAppearanceMedium" />

</LinearLayout>

现在我想通过自定义阵列适配器填充此阵列项我的阵列适配器不正确

我的ArrayAdapter

public class AdapterSmsPanelNumbers extends ArrayAdapter<String[]> {

    public AdapterSlideMenuSMS(String[] array) {
        super(G.context, R.layout.call_list, array);
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;
        if (convertView == null) {
            convertView = G.inflater.inflate(R.layout.single_choice, parent, false);
            holder = new ViewHolder(convertView);
            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }

        holder.text.setText(array[position]);
        return convertView;
    }

    private static class ViewHolder {
        private final TextView    text;
        private final RadioButton radio;
        public ViewHolder(View view) {
            text = (TextView) view.findViewById(R.id.text1);
            radio = (RadioButton) view.findViewById(R.id.radio1);
        }
    }
}
公共类适配器MSPanelNumber扩展ArrayAdapter{
公共适配器lidemenusms(字符串[]数组){
super(G.context、R.layout.call_list、array);
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视窗座;
if(convertView==null){
convertView=G.充气机.充气(R.布局.单选,父项,false);
支架=新的视图支架(convertView);
convertView.setTag(支架);
}否则{
holder=(ViewHolder)convertView.getTag();
}
holder.text.setText(数组[位置]);
返回视图;
}
私有静态类视图持有者{
私有最终文本查看文本;
私人最终单选按钮收音机;
公共视图持有者(视图){
text=(TextView)view.findViewById(R.id.text1);
单选=(RadioButton)view.findViewById(R.id.radio1);
}
}
}
问题
我不能用单个字符串[]填充listview项,我不想从PanelNumber创建类,请帮助我解决此类问题,使simple ArrayAdapter显示simple Array

首先必须理解
适配器的概念。
它需要一个对象数组(或列表),因此对于它在其中找到的每个项目,它将生成一个
视图
(需要时)

在这里,如果您想使用
字符串数组
,您必须告诉
数组适配器
,它将处理
字符串
s,包括:

public class AdapterSmsPanelNumbers extends ArrayAdapter<String>
因此,正如@SorryForMyEnglish所建议的:

public class AdapterSmsPanelNumbers extends ArrayAdapter<String> {

    public AdapterSlideMenuSMS(Context context, String[] array) {
        super(context, 0, array);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;
        if (convertView == null) {
            convertView = LayoutInflater.from(getContext()).inflate(R.layout.single_choice, parent, false);
            holder = new ViewHolder(convertView);
            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }

        holder.text.setText(getItem(position));
        return convertView;
    }

    private static class ViewHolder {
        private final TextView    text;
        private final RadioButton radio;
        public ViewHolder(View view) {
            text = (TextView) view.findViewById(R.id.text1);
            radio = (RadioButton) view.findViewById(R.id.radio1);
        }
    }
}

对于看到这个问题并且只想知道如何从以编程方式创建的字符串列表而不是字符串资源创建数组适配器的人,您只需要执行以下操作

String[] myStringArray = (String[]) myArrayListOfStrings.toArray();
ArrayAdapter<CharSequence> myAdapter = new ArrayAdapter(getContext(), R.layout.my_layout, myStringArray);
String[]myStringArray=(String[])myArrayListOfStrings.toArray();
ArrayAdapter myAdapter=新的ArrayAdapter(getContext(),R.layout.my_layout,myStringArray);

问题出在哪里?更改
ArrayAdapter
holder.text.setText(getItem(position))@Sergey Glotov我无法从单个字符串[]填充列表视图项array@Sergey格洛托夫我的帖子更新了,请评论一下
private String[]  panelNumbers;
panelNumbers = G.getActiveUserInfo().phoneNumbers.split(",");

ArrayAdapter adapter = new AdapterSmsPanelNumbers(this, panelNumbers);
listView.setAdapter(adapter);
String[] myStringArray = (String[]) myArrayListOfStrings.toArray();
ArrayAdapter<CharSequence> myAdapter = new ArrayAdapter(getContext(), R.layout.my_layout, myStringArray);