我正在使用Web服务并将JSON响应存储在arraylist中。我在android中的List视图中显示arraylist。我关注的是,我只想在listview中显示我的工作ID和工作状态,在onclick事件期间我需要显示所有数据,如工作ID,工作名称,工作状态等。
目前所有细节都显示在列表视图中。我需要在那里隐藏某些值。
我尝试删除适配器部件中不需要的字段。但在这样做时,我无法在onclick事件中检索它们。
请帮忙。
ListAdapter adapter = new SimpleAdapter(
JobMain.this, jobList,
R.layout.detail_list, new String[] {"number","name","member","desc","status" }, new int[] { R.id.textView2,
R.id.textView4, R.id.textView6,R.id.textView8,R.id.textView10});
setListAdapter(adapter);
ListView lv = getListView();
lv.setBackgroundResource(R.drawable.background);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
String reqno = ((TextView) view.findViewById(R.id.textView2))
.getText().toString();
String name = ((TextView) view.findViewById(R.id.textView4))
.getText().toString();
String member = ((TextView) view.findViewById(R.id.textView6))
.getText().toString();
String description = ((TextView) view.findViewById(R.id.textView8))
.getText().toString();
String status = ((TextView) view.findViewById(R.id.textView10))
.getText().toString();
答案 0 :(得分:0)
您为ListView.setAdapter(适配器)提供一个ArrayList。 .setOnItemClicklistener()具有位置值。用它来从ArrayList获取你想要的对象到下一个动作......
object you_want = ArrayList.get(position);
*您可能想要创建自己的ArrayAdapter。
答案 1 :(得分:0)
是的,这是可能的。 你可以通过在视图中添加这个属性来隐藏它:
android:visibility="gone"
OR,
在适配器内部,将相关视图的可见性设置为消失。
无论哪种方式,在listview的onItemClick()内,将visiblity设置为可见,以便在单击项目时显示
像这样:
隐藏XML
<!--You can choose to hide it here by setting visibility
to gone in xml like this-->
<EditText
android:id="@+id/edit"
android:inputType="text"
android:enabled="true"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
您的适配器内的代码getView()
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
Holder holder;
if (convertView==null)
{
holder=new Holder();
convertView=LayoutInflater.from(context).inflate(R.layout.item,parent,false);
holder.editText=(EditText)convertView.findViewById(R.id.edit);
convertView.setTag(holder);
}
else {holder=(Holder)convertView.getTag();}
//hide the views like this
holder.editText.setVisibility(View.GONE);
holder.editText.setEnabled(true);
holder.editText.setHint("type");
然后点击后显示
convertView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//make the view visible when the item is clicked
holder.editText.setVisibility(View.VISIBLE);
}
});
return convertView;
}