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