ListView中的EditText中的一些问题

时间:2014-03-24 07:33:10

标签: java android listview android-edittext

我是Android的新手,目前正致力于一个简单的andriod应用程序。我正在写一个listview,我想把一些EditText和textViews放进去。我的想法是在listview上的每个项目中放置一个textview然后是一个edittext。然后我可以从edittext获取值来进行一些计算并得到结果。 我现在可以制作一个列表视图并处理计算。但我真的不能自己制作列表视图。 我已经搜索谷歌任何指示,但我找不到任何好的资源。任何人都可以给我一些示例代码,以便我可以有一个指南跟随... 谢谢你

这是我的部分代码

public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.infmain);


    ListView lstView;

    lstView = (ListView) findViewById(R.id.listView1);
    ArrayAdapter<String> listadapter = new ArrayAdapter<String> (this, android.R.layout.simple_spinner_item,list);
    lstView.setAdapter(listadapter);

    Spinner spinner = (Spinner) findViewById(R.id.planets_spinner);


    Integer[] items = new Integer[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
            12, 13, 14, 15, 16, 17, 18 };
    ArrayAdapter<Integer> adapter = new ArrayAdapter<Integer>(this,
            android.R.layout.simple_spinner_item, items);


    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);

    spinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() {
        public void onItemSelected(AdapterView adapterView, View view,
                int position, long id) {

        }

        public void onNothingSelected(AdapterView arg0) {

        }
    });
}

我正在寻找一些与我做类似事情的示例代码。 所以我可以阅读和学习代码。 感谢

2 个答案:

答案 0 :(得分:0)

默认适配器和视图不会像您在代码中那样使用。

您需要为行创建单独的xml。并使用自定义适配器为该行充气。

在你的行视图中,只需在textview下面添加一个edittext即可。

答案 1 :(得分:0)

确定创建名为img_row_layout的新布局并将此代码复制到其中

 ?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <ImageView
            android:id="@+id/img"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_alignParentLeft="true"/>

        <TextView
            android:id="@+id/name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignTop="@+id/img"
            android:layout_toRightOf="@+id/img"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/dist"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"


   android:layout_below="@id/name"
        android:layout_gravity="center"
        android:layout_marginTop="2dip"
        android:layout_toRightOf="@id/img"
        android:gravity="right"
        android:textSize="8dp"
        android:textStyle="italic" />

</RelativeLayout>

上面显示的布局非常简单,我们不需要解释它。然后我们必须修改自定义适配器以处理图像和holder类。持有人类成为:

public View getView(int position, View convertView, ViewGroup parent) {
    View v = convertView;
     
    PlanetHolder holder = new PlanetHolder();
     
    // First let's verify the convertView is not null
    if (convertView == null) {
        // This a new view we inflate the new layout
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        v = inflater.inflate(R.layout.img_row_layout, null);
        // Now we can fill the layout with the right values
        TextView tv = (TextView) v.findViewById(R.id.name);
        TextView distView = (TextView) v.findViewById(R.id.dist);
        ImageView img = (ImageView) v.findViewById(R.id.img);
         
        holder.planetNameView = tv;
        holder.distView = distView;
        holder.img = img;
         
        v.setTag(holder);
    }
    else
        holder = (PlanetHolder) v.getTag();
     
    System.out.println("Position ["+position+"]");
    Planet p = planetList.get(position);
    holder.planetNameView.setText(p.getName());
    holder.distView.setText("" + p.getDistance());
     
    holder.img.setImageResource(p.getIdImg());
     
    return v;
}

similar example 1 Similat Example 2