我用textview&创建了一个列表使用holder的edittext ...看起来像
[button]
但我无法从每个Edittext&无论何时我向任何edittext数据添加数据都会自动交换到其他edittext我无法控制它。我需要的是将所有edittext数据(动态给出)传输到哈希表或其他东西,同时单击一个按钮。任何人都可以帮助我......实现它......协助提供示例代码......
这是我的src文件......
package org.me.androidapplication40;
import android.app.Activity;
import android.os.Bundle;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
public class customlistview extends Activity {
private static class EfficientAdapter extends BaseAdapter {
private LayoutInflater mInflater;
public EfficientAdapter(Context context) {
mInflater = LayoutInflater.from(context);
}
public int getCount() {
return country.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.listview,parent,false);
holder = new ViewHolder();
holder.text = (TextView) convertView.findViewById(R.id.TextView01);
holder.text2 = (TextView) convertView.findViewById(R.id.TextView02);
holder.txt=(EditText) convertView.findViewById(R.id.txtbox);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.text.setText(curr[position]);
holder.text2.setText(country[position]);
holder.txt.setText("");
return convertView;
}
public class ViewHolder {
TextView text;
TextView text2;
EditText txt;
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView l1 = (ListView) findViewById(R.id.ListView01);
l1.setAdapter(new EfficientAdapter(this));
}
private static final String[] country = { "item1","item2","item3","item4","item5","item6"};
private static final String[] curr = { "1","2","3","4","5","6"};
}
listview.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:gravity="left|center"
android:layout_width="wrap_content"
android:paddingBottom="5px"
android:paddingTop="5px"
android:paddingLeft="5px">
<TextView android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:background="@drawable/bg"
android:textColor="#FFFF00"
android:text="hi"></TextView>
<TextView android:text="@+id/TextView02"
android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10px"
android:textColor="#0099CC"></TextView>
<EditText
android:id="@+id/txtbox"
android:layout_width="63px"
android:layout_height="30px"
android:textSize="12sp"
android:layout_x="211px"
android:layout_y="13px"
>
</EditText>
</LinearLayout>
main.xml中
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:id="@+id/TextView01"
android:layout_height="wrap_content"
android:text="List of items"
android:textStyle="normal|bold"
android:gravity="center_vertical|center_horizontal"
android:layout_width="fill_parent"></TextView>
<ListView android:id="@+id/ListView01"
android:layout_height="wrap_content"
android:layout_width="fill_parent">
</ListView>
</LinearLayout>
答案 0 :(得分:0)
你可以做的一种方法是在hashmap或任何集合中获取整个视图持有者并获取位置并在需要时进行检索。
答案 1 :(得分:0)
我认为你的问题类似于我在这里的问题:
Change ListView background - strange behaviour
我认为您缺少更新您的参考资料,如:
// we must update the object's reference
holder.data = getItem(position);
在这种情况下,项目在列表中,getItem(position);
返回我实际想要在特定行中更新的对象。
listView开箱即用,可以回收视图,这意味着滚动时视图会消失,而视图会变得可见。为了显示正确的数据,您必须更新参考文献。
希望这有帮助!