Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.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
Java 在Listview的2文本视图中显示2数组_Java_Android - Fatal编程技术网

Java 在Listview的2文本视图中显示2数组

Java 在Listview的2文本视图中显示2数组,java,android,Java,Android,我有2个字符串数组 数组1和数组2。 我想在列表视图中用搜索过滤器显示这2个数组 有人能给我推荐推荐信吗?我想在一次活动中取得成功。比如不要为适配器创建另一个类。将两个数组传递给列表适配器,从数组中获取数据并设置为文本视图。 您可以在活动类中创建内部类扩展BaseAdapter。不需要创建单独的类文件 使用两个文本视图尝试以下操作 您需要在布局文件夹中创建包含_textViews.xml的_布局,该布局应包含两个文本视图 pubic class MyActivity extends Activi

我有2个
字符串数组

数组1和数组2。 我想在
列表视图
中用搜索
过滤器
显示这2个数组


有人能给我推荐推荐信吗?我想在一次活动中取得成功。比如不要为适配器创建另一个类。

将两个数组传递给列表适配器,从数组中获取数据并设置为文本视图。

您可以在活动类中创建内部类扩展BaseAdapter。不需要创建单独的类文件

使用两个文本视图尝试以下操作

您需要在布局文件夹中创建包含_textViews.xml的_布局,该布局应包含两个文本视图

pubic class MyActivity extends Activity {
 ....
....
....

    class MyAdapter extends BaseAdapter {
// edits based on comments by the question author -- for two text views
        String[] str1 = new String[]{...};
        String[] str2 = new String[]{...};

        int getCount(){
            return str1.length > str2.length?str1.length : str2.length;
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            convertView = getLayoutInflater().inflate(R.layout.your_layout_containing_textViews, null);
            TextView txt1 = convertView.findViewById(R.id.txt1);
            TextView txt2 = convertView.findViewById(R.id.txt2);
            txt1.setText(position<str1.length?str1[position]:"");
            txt2.setText(position<str2.length?str2[position]:""); 
            return convertView;
        }
 ...
    }
...
}
公共类MyActivity扩展活动{
....
....
....
类MyAdapter扩展了BaseAdapter{
//根据问题作者的评论进行编辑——针对两个文本视图
字符串[]str1=新字符串[]{…};
字符串[]str2=新字符串[]{…};
int getCount(){
返回str1.length>str2.length?str1.length:str2.length;
}
公共视图getView(int位置、视图转换视图、视图组父视图){
convertView=GetLayoutFlater()。充气(R.layout.your_layout_包含_文本视图,null);
TextView txt1=convertView.findViewById(R.id.txt1);
TextView txt2=convertView.findViewById(R.id.txt2);
txt1.setText(位置您可以按照以下步骤操作:

activity_list_view.xml
<ListView
    android:id="@+id/listViewExample"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:divider="@android:color/holo_green_light"
    android:dividerHeight="5dp"
    android:clickable="true"
    android:choiceMode="singleChoice" />
activity\u list\u view.xml
此方法使用SimpleAdapter在ListView中显示数据

private void simpledapterlistview()
{
字符串[]titlear={“1”、“2”、“3”、“4”、“5”};
字符串[]descArr={“A”、“B”、“C”、“D”、“E”};
ArrayList itemDataList=新建ArrayList();;
int titleLen=titleArr.length;
对于(int i=0;i

最后,只需在
onCreate()中声明
this.simpleAdapterListView();
首先,请将你的数据传递到它。你能给出一个完整的引用吗?当然可以。但是首先请澄清你的问题。你有什么样的数组?字符串?你想怎么搜索???这两个数组中的数据是不是都是相关的?都是字符串。为什么不考虑创建一个数组和添加?arraylist和use array adapter的字符串我想在自定义适配器中使用。我已成功实现了1个数组,但我需要在2个单独的Textview上使用2个数组的帮助。
private void simpleAdapterListView()
{


    String[] titleArr = { "1", "2", "3", "4","5"};
    String[] descArr = { "A", "B", "C", "D", "E" };

    ArrayList<Map<String,Object>> itemDataList = new ArrayList<Map<String,Object>>();;

    int titleLen = titleArr.length;
    for(int i =0; i < titleLen; i++) {
        Map<String,Object> listItemMap = new HashMap<String,Object>();
        listItemMap.put("title", titleArr[i]);
        listItemMap.put("description", descArr[i]);
        itemDataList.add(listItemMap);
    }

    SimpleAdapter simpleAdapter = new SimpleAdapter(this,itemDataList,android.R.layout.simple_list_item_2,
            new String[]{"title","description"},new int[]{android.R.id.text1,android.R.id.text2});

    ListView listView = (ListView)findViewById(R.id.listViewExample);
    listView.setAdapter(simpleAdapter);

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int index, long l) {
            Object clickItemObj = adapterView.getAdapter().getItem(index);
            Toast.makeText(ListViewActivity.this, "You clicked " + clickItemObj.toString(), Toast.LENGTH_SHORT).show();
        }
    });

}