急急急 求如何修改listview中某项item的内容

移动开发 码拜 10年前 (2015-04-24) 1185次浏览 0个评论

小弟超级新人 正在写一个类似通讯录的东西  现在遇到的问题是不知道如何修改已经添加了的item的内容急急急 求如何修改listview中某项item的内容
急急急 求如何修改listview中某项item的内容
如图所示 我想在点开item时出现图二内容(目前用图二只能添加item) 编辑后就可以修改item的内容 但不知如何操作 求大神指条明路

以下是简陋的代码
mainactivity.java

public class MainActivity extends Activity implements View.OnClickListener {
    private SimpleAdapter simpleAdapter;
    private ArrayList<HashMap<String,String>> arrayList=new ArrayList<HashMap<String, String>>();
    private ListView listView;
    public TextView textView2;
    public TextView textView3;
    private Button button;
    public boolean haha=false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button=(Button)findViewById(R.id.add);
        button.setOnClickListener(this);
        textView2=(TextView)findViewById(R.id.textView2);
        textView3=(TextView)findViewById(R.id.textView3);
        listView=(ListView)findViewById(R.id.listView);
        HashMap<String,String> map=new HashMap<String,String>();
        map.put(“name”,”name”);
        map.put(“numble”,”numble”);
        arrayList.add(map);
        simpleAdapter=new SimpleAdapter(this,arrayList,R.layout.item,new String[]{“name”,”numble”},new int[]{R.id.textView2,R.id.textView3});
        listView.setAdapter(simpleAdapter);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                Intent intent=new Intent(MainActivity.this,Tiaozhuan.class);

                startActivityForResult(intent, 100);

            }
        });

    }

    @Override
    public void onClick(View v) {
        Intent intent=new Intent(MainActivity.this,Tiaozhuan.class);
        startActivityForResult(intent,100);

    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(20==resultCode)
        {
            String name=data.getExtras().getString(“name”);
            String numble=data.getExtras().getString(“numble”);

            HashMap<String,String> map=new HashMap<String,String>();
            map.put(“name”,name);
            map.put(“numble”,numble);
            arrayList.add(map);
            simpleAdapter.notifyDataSetChanged();

        }
    }
}

tiaozhuan.java

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tiaozhuan);
        back=(Button)findViewById(R.id.back);
        name=(EditText)findViewById(R.id.editText);
        numble=(EditText)findViewById(R.id.editText2);

        back.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String sname=name.getText().toString();
                String snumble=numble.getText().toString();

                Intent data=new Intent();

                if((!sname.equals(“”))&&(!snumble.equals(“”)))
                {
                    data.putExtra(“name”, sname);
                    data.putExtra(“numble”,snumble);
                    setResult(20, data);
                }
                 finish();

            }
        });
    }
}

急急急 求如何修改listview中某项item的内容
10分
不要用SimpleAdapter ,使用BaseAdapter, 在getview方法中对item控件的点击事件做处理,是否显示输入框之类的。
急急急 求如何修改listview中某项item的内容
10分
ListView 以后尽量使用BaseAdapter  
急急急 求如何修改listview中某项item的内容
20分
使用SimpleAdapter可能满足不了你的需求 

使用BaseAdapter, 在getview方法中对item控件的点击事件做处理,是否显示输入框之类的,大概是下面的代码的意思。

// 定义自己的适配器,注意getCount和getView方法
    private class MyAdapter extends BaseAdapter {
        @Override
        public int getCount() {
            // 这里我就返回10了,也就是一共有10项数据项
            return 10;
        }
 
        @Override
        public Object getItem(int arg0) {
            return arg0;
        }
 
        @Override
        public long getItemId(int position) {
            return position;
        }
 
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            // position就是位置从0开始,convertView是Spinner,ListView中每一项要显示的view
            // 通常return 的view也就是convertView
            // parent就是父窗体了,也就是Spinner,ListView,GridView了.
            TextView mTextView = new TextView(getApplicationContext());
            mTextView.setText("BaseAdapterDemo");
            mTextView.setTextColor(Color.RED);
            return mTextView;
        }
 
    }
急急急 求如何修改listview中某项item的内容
引用 3 楼 u010853225 的回复:

使用SimpleAdapter可能满足不了你的需求 

使用BaseAdapter, 在getview方法中对item控件的点击事件做处理,是否显示输入框之类的,大概是下面的代码的意思。

// 定义自己的适配器,注意getCount和getView方法
    private class MyAdapter extends BaseAdapter {
        @Override
        public int getCount() {
            // 这里我就返回10了,也就是一共有10项数据项
            return 10;
        }
 
        @Override
        public Object getItem(int arg0) {
            return arg0;
        }
 
        @Override
        public long getItemId(int position) {
            return position;
        }
 
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            // position就是位置从0开始,convertView是Spinner,ListView中每一项要显示的view
            // 通常return 的view也就是convertView
            // parent就是父窗体了,也就是Spinner,ListView,GridView了.
            TextView mTextView = new TextView(getApplicationContext());
            mTextView.setText("BaseAdapterDemo");
            mTextView.setTextColor(Color.RED);
            return mTextView;
        }
 
    }

你好,请问我该如何在getCount中获得当前的数据项


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明急急急 求如何修改listview中某项item的内容
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!