【发布时间】:2014-01-14 18:23:26
【问题描述】:
我是这个 android 开发的新手,在 listview 中设置 textview 的文本时遇到问题。
问题:
活动 1 中的列表视图
=====================
型号
=====================
颜色
=====================
风格
=====================
制作
=====================
当我单击列表视图中的“模型”视图时。下面出现了
活动 2 中的列表视图
=====================
丰田
=====================
捷豹
=====================
本田
=====================
昴
=====================
活动 1 中的结果
=====================
型号
=====================
颜色 -------------- 丰田
=====================
风格
=====================
制作
=====================
我在寻找什么:
=====================
型号 -------------- 丰田
=====================
颜色
=====================
风格
=====================
制作
=====================
这里是初始活动。当我单击列表视图中的“模型”时,另一个活动将显示汽车模型列表。 (使用 startactivtiyforresult() 调用新活动)
在第二个活动中,当我单击任何模型名称时,它会关闭当前活动并将所选模型名称传递给第一个活动。此模型名称设置为 OnActivityResult 方法中的 textview
我的自定义适配器
class CustomAdapter extends ArrayAdapter<String> {
Context context;
String[] titles;
public CustomAdapter(Context context, String[] titles) {
super(context, R.layout.dashboard_row_layout, R.id.row_textview, titles);
this.context = context;
this.titles = titles;
}
@Override
public View getView(int position, View convertView, ViewGroup parent){
View row = convertView;
ViewHolder holder;
if(row==null)
{
LayoutInflater inflater = (LayoutInflater)context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
row = inflater.inflate(R.layout.dashboard_row_layout, parent, false);
holder = new ViewHolder(row);
row.setTag(holder);
}
//((TextView)row.findViewById(R.id.row_textview)).setText(titles[position]);
else
{
holder = (ViewHolder)row.getTag();
}
holder.textview.setText(titles[position].toString());
return row;
}
}
class ViewHolder
{
TextView textview;
ViewHolder(View v)
{
textview = (TextView) v.findViewById(R.id.row_textview);
}
}
OnActivityResultMethod
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (resultCode)
{
case Activity.RESULT_OK:
//selectedModel = data.getStringExtra("response");
setDateTextView.setText(data.getStringExtra("response"));
}
}
片段的OnCreateView
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View rootView = inflater.inflate(R.layout.fragment_vehicle_information, container, false);
SeparatedListAdapter adapter = new SeparatedListAdapter(this.getActivity());
adapter.addSection("Plate Information", new CustomAdapter(this.getActivity(),getResources().getStringArray(R.array.plateInformationArrayList)));
adapter.addSection("Vehicle Information", new CustomAdapter(this.getActivity(),getResources().getStringArray(R.array.vehicleInformationArrayList)));
((ListView)rootView.findViewById(R.id.veh_information_listView)).setAdapter(adapter);
//Click Listener for listview with custom view
((ListView)rootView.findViewById(R.id.veh_information_listView)).setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if(((TextView)view.findViewById(R.id.row_textview)).getText().toString().equalsIgnoreCase("Expiration")){
DateDialog dialog = new DateDialog(getActivity(), (TextView)view.findViewById(R.id.statename_textView));
dialog.returnDateDialog().show();
}
else if(((TextView)view.findViewById(R.id.row_textview)).getText().toString().equalsIgnoreCase("Model")){
setDateTextView = (TextView)view.findViewById(R.id.statename_textView);
startActivityForResult(new Intent(getActivity(), VehicleInformationDetails.class), 1);
}
}
});
return rootView;
}
第二个活动
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_searchable_listview, container, false);
ListView listview = (ListView)rootView.findViewById(R.id.searchable_listView);
MyAdapter adapter = new MyAdapter(context, array);
listview.setAdapter(adapter);
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
TextView textView = (TextView)view.findViewById(R.id.list_item_title);
Intent returnIntent = new Intent();
returnIntent.putExtra("response", textView.getText().toString());
getActivity().setResult(Activity.RESULT_OK, returnIntent);
getActivity().finish();
}
});
SetActionBarTitle(this.actionBarTitle);
return rootView;
}
希望这个解释是有帮助的。请帮帮我。
【问题讨论】:
-
由于stackoverflow信誉无法添加图片。
标签: android android-listview android-fragments android-activity