【问题标题】:Editing ListView Dynamically in Android在 Android 中动态编辑 ListView
【发布时间】:2014-06-24 05:07:36
【问题描述】:

假设我已经使用 ListView 创建了一个列表。该列表由颜色名称组成。 现在我使用一个 EditText 文本字段和一个 Button 小部件。我输入文本(颜色名称)并按下按钮。输入的颜色名称应添加到列表中。谁能帮我写代码?

【问题讨论】:

标签: android android-listview android-edittext


【解决方案1】:

我想你正在寻找这个......

public class Colors extends Activity {

private EditText et1;
private Button but1;
private ListView list;
private ArrayList<String> colornames=new ArrayList<String>();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    et1  = (EditText)findViewById(R.id.et1);
    but1 = (Button)findViewById(R.id.but1);
    list = (ListView)findViewById(R.id.list1);

    but1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            colornames.add(et1.getText().toString());
            ArrayAdapter<String> adapter=new ArrayAdapter<String>(Colors.this, android.R.layout.simple_list_item_1,colornames);
            list.setAdapter(adapter); 
        }
    });
}

输出看起来像这样

【讨论】:

  • 还在做。需要进行一些更改。
  • 好的,我采用了一个字符串数组:String[] colors={"RED","GREEN",BLUE"}; 然后我使用了 OnItemClickListener 来更改文本中文本的颜色点击相应颜色后立即查看。现在我必须按照要求进行更改。更改不需要执行颜色更改功能。只是我必须在列表中添加项目。你能帮我吗? .
  • 对不起...您能否详细说明上述评论
  • 我已经制作了一个程序,其中我采用了上面评论中提到的字符串数组。我还采用了 TextView("COLORS")。好的!现在每当我按下,假设红色,颜色的文本颜色变为红色。我想要的是在列表中添加另一个项目,比如 ORANGE。而已。当我按橙色时,我不希望 COLORS 的颜色变为橙色。这够好吗?
  • @SainathPatwarykarnate 您的解决方案确实有效,但我觉得这不是“正确的方式”,而是一种愚蠢的方式..!!!每次点击都会有一个新的ArrayAdapter,说真的..??看看第二个答案,ArrayAdapter 中还有一个 API 调用 notifyDataSetChanged().. 你可能想看看它... :)
【解决方案2】:

MainActivity 类

package com.example.asd;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;

public class MainActivity extends Activity
{

private ListView list;
private EditText et;
private ArrayAdapter<String> adapter;

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    adapter= new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1);
    adapter.add("white");
    adapter.add("black");
    adapter.add("read");
    list=(ListView)findViewById(R.id.listView1);
    list.setAdapter(adapter);

    et=(EditText)findViewById(R.id.editText1);

    Button b=(Button)findViewById(R.id.button1);

    b.setOnClickListener(new OnClickListener() 
    {

        @Override
        public void onClick(View v) 
        {
                adapter.add(et.getText().toString());           
        }
    });


}



}

布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black">

<EditText
    android:id="@+id/editText1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="25dp"
    android:ems="10" >

    <requestFocus />
</EditText>

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/editText1"
    android:layout_below="@+id/editText1"
    android:text="Button" />

<ListView
    android:id="@+id/listView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentLeft="true"
    android:cacheColorHint="#00000000"


    android:layout_below="@+id/button1" >
</ListView>

</RelativeLayout>

【讨论】:

  • 好的,我采用了一个字符串数组:String[] colors={"RED","GREEN",BLUE"}; 然后我使用了 OnItemClickListener 来更改文本中文本的颜色点击相应颜色后立即查看。现在我必须按照要求进行更改。更改不需要执行颜色更改功能。只是我必须在列表中添加项目。你能帮我吗? .
  • 要清楚,当我们选择列表中的一种颜色时,您是否要将颜色更改应用到文本框?
  • 我已经完成了在单击列表中的颜色时应用颜色的部分。现在,当我添加另一种颜色时,它不应该这样做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-19
相关资源
最近更新 更多