android listview-利用dialog来编辑listview中的数据

问题描述

利用dialog来编辑listview中的数据

package com.example.wightandheight;

import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;

public class LoginDialogFragment extends DialogFragment
{
private EditText mUsername;

public interface LoginInputListener
{
    void onLoginInputComplete(String username);
}

@Override
public Dialog onCreateDialog(Bundle savedInstanceState)
{
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    // Get the layout inflater
    LayoutInflater inflater = getActivity().getLayoutInflater();
    View view = inflater.inflate(R.layout.fragment_login_dialog, null);
    mUsername = (EditText) view.findViewById(R.id.id_txt_depict);
    builder.setView(view)
            // Add action buttons
            .setPositiveButton("Sign in",
                    new DialogInterface.OnClickListener()
                    {

                        @Override
                        public void onClick(DialogInterface dialog, int id)
                        {
                            LoginInputListener listener = (LoginInputListener) getActivity();
                            listener.onLoginInputComplete(mUsername
                                    .getText().toString());

                        }
                    }).setNegativeButton("Cancel", null);
    return builder.create();
}

}
package com.example.wightandheight;

import java.util.ArrayList;

import com.example.wightandheight.ListViewAdapter.ViewHolder;
import com.example.wightandheight.LoginDialogFragment.LoginInputListener;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;

public class MainActivity extends Activity implements LoginInputListener {
private ListView lv;
private ListViewAdapter mAdapter;
private ArrayList persons;
String height="";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.list_view);
persons = new ArrayList();
// 为Adapter准备数据
initPersonData();
// 实例化自定义的MyAdapter
mAdapter = new ListViewAdapter(persons, this);
lv.setAdapter(mAdapter);

    lv.setOnItemClickListener(new OnItemClickListener(){

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            Person pp=(Person)mAdapter.getItem(position);
            LoginDialogFragment dialog = new LoginDialogFragment();
            dialog.show(getFragmentManager(), "loginDialog");
            pp.setHeight(height);
            mAdapter.notifyDataSetChanged();

        }
    });

}

@Override
public void onLoginInputComplete(String username) {
    // TODO Auto-generated method stub
          height=username;
}

// 初始化数据
private void initPersonData(){

Person mPerson;

for(int i=1;i<=40;i++){

mPerson = new Person();

mPerson.setName("Andy"+i);

mPerson.setId(Character.valueOf((char)(i+65))+" ");
mPerson.setHeight(height);
mPerson.setWeight("20kg");
persons.add(mPerson);

}

}

}
以上是部分代码.问题如下:点击listview出现diaolog编辑数据,这个数据被保存了,但是没有及时更新到listview中.再次点击的时候这个值才会被更新了

解决方案

同步和异步的问题

 LoginDialogFragment dialog = new LoginDialogFragment();
            dialog.show(getFragmentManager(), "loginDialog");             //这里是不会等着的,后面代码接着执行。
            pp.setHeight(height);
            mAdapter.notifyDataSetChanged();//这句在显示出来的时候已经执行了,所以刷新要放在dialog关闭的方法里面

解决方案二:

希望看到你的源码,对于初学者有很大帮助,谢谢

时间: 2024-08-03 09:30:49

android listview-利用dialog来编辑listview中的数据的相关文章

利用asp.net从数据库中传出数据,导入EXCEL中

问题描述 Excel具有强大的报表等功能,通过对excel和VBA进行设计和编程可以制作强大的报表系统.毕业设计管理系统软件在完成主要的业务处理后,需要处理大量的不同需求的报表.本课题在调查毕业设计系统报表需求的基础上,利用asp.net从数据库中传出数据,导入EXCEL中,制做毕业设计管理系统的所有报表,以及打印功能 解决方案 解决方案二:henhaozuodejietieba

Android如何扫描获取二维码中的数据?

问题描述 Android如何扫描获取二维码中的数据? 我首先做了一个二维码名片,把信息输入进去以后生成了一个二维码,现在需要通过扫描这个二维码获取里面的信息中的电话号码信息,然后是一个发短信的过程.现在的问题就是如何扫描获得这个电话号码? 解决方案 参考:http://www.cnblogs.com/weixing/archive/2013/08/28/3287120.html 解决方案二: 建议你使用ZXing框架 解决方案三: android 二维码 扫描cocos2dx android 二

利用aspose.word替换表格中的数据

问题描述 我在进行word导出的时候,利用word的书签,现在根据书签来替换word中表格的单元格的数据,怎么操作利用的是aspose.word的第三方插件

数据显示-如何将串口接收到的数据返回给主线程并显示在编辑框中?

问题描述 如何将串口接收到的数据返回给主线程并显示在编辑框中? 小弟用的是serialPort,MFC,怎么才能把串口接收到的数据返回给主线程显示在编辑框中?求大侠帮助! void CRBAS_ODBCView::OnButtonSurveyStart() { /**************发数据*********************************/ SerialPort^ _serialPort = gcnew SerialPort("COM3", 38400, Par

vc++6.0mfc-vc++6.0如何实现在模态对话框编辑框中输入数据,单击确定按钮将数据添加到组合框按钮中!

问题描述 vc++6.0如何实现在模态对话框编辑框中输入数据,单击确定按钮将数据添加到组合框按钮中! vc++6.0如何实现在模态对话框编辑框中输入数据,单击确定按钮将数据添加到组合框按钮中!我'是个新手,请求详解! 解决方案 添加编辑框,组合框 ctrl+w映射两个成员变量,一个对应编辑框(比如m_edit1),一个对应组合框(比如m_combo1),添加一个按钮. 双击按钮,编写 UpdateData(true); m_combo1.AddString(m_edit1); 解决方案二: 大神

Android应用中ListView利用OnScrollListener分页加载数据_Android

当用户从网络上读取微薄的时候,如果一下子全部加载用户未读的微薄这将耗费比较长的时间,造成不好的用户体验,同时一屏的内容也不足以显示如此多的内容.这时候,我们就需要用到另一个功能,那就是listview的分页了.通过分页分次加载数据,用户看多少就去加载多少. 通常这也分为两种方式,一种是设置一个按钮,用户点击即加载.另一种是当用户滑动到底部时自动加载.今天我就和大家分享一下这个功能的实现. 首先,写一个xml文件,moredata.xml,该文件即定义了放在listview底部的视图: <?xml

横向滑动-Android中用首字母排序的listview中的item的滑动监听与listview的上下滑动冲突

问题描述 Android中用首字母排序的listview中的item的滑动监听与listview的上下滑动冲突 大神帮看看,我现在listview的item中我写了一个OnTouchListener,但是发现横向滑动的时候老是会触发listview的上下滑动事件,导致横向滑动很难滑出来,但是滑出来第一次后,后面就很容易划出来了!大神帮忙看看!!!感谢! 让人很是苦恼,这个该怎么处理呢?查过资料说改返回值为false,改了都滑不出来! /** * 侧滑显示删除按钮 */ private View.

Android实战技巧:如何在ListView中嵌套ListView

 前几天因为项目的需要,要在一个ListView中放入另一个ListView,也即在一个ListView的每个ListItem中放入另外一个ListView.但刚开始的时候,会发现放入的小ListView会显示不完全,它的高度始终有问题.上网查了下,发现别人也有遇到这样的问题,而大多数人都不推荐这样的设计,因为默认情况下Android是禁止在ScrollView中放入另外的ScrollView的,它的高度是无法计算的. 又搜索了一下,发现有StackOverflow上的牛人已经解决了这个问题,经

Android UI设计系列之自定义ListView仿QQ空间阻尼下拉刷新和渐变菜单栏效果(8)_Android

好久没有写有关UI的博客了,刚刚翻了一下之前的博客,最近一篇有关UI的博客:Android UI设计系列之自定义Dialog实现各种风格的对话框效果(7) ,实现各种风格效果的对话框,在那篇博客写完后由于公司封闭开发封网以及其它原因致使博客中断至今,中断这么久很是惭愧,后续我会尽量把该写的都补充出来.近来项目有个需求,要做个和QQ空间类似的菜单栏透明度渐变和下拉刷新带有阻尼回弹的效果.于是花点时间动手试了试,基本上达到了QQ空间的效果,截图如下:         通过观察QQ空间的运行效果,发现