마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Listview아이템클릭후 데이터 전달받아서 수정후 다시 내보내는데 갱신이 안됩니다.. 도와주세요!

0 추천

처음 리스트 뷰 생성후 리스트뷰아이템을 클릭해서 내용작성하는 액티비티로 다시 들어가면 원래 있던 데이터가 잘 뿌려집니다.. 그리고 내용을 수정하고 다시 저장을 누르면 main액티비티에 있는 listview아이템의 내용이 바껴야되는데 안바뀌네요 .. 도와주세요 ㅠ

//아이템 클릭시 리스트뷰에 있던 정보 내보내기 (mainActivity
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            public void onItemClick(AdapterView<?> arg0, View arg1, final int position, long arg3) {
                    int pos = position;
                MemoItem item = (MemoItem) adapter.getItem(pos);
                    String space = item.getSpace();
                    String contents = item.getContents();
                    String timestamp = item.getTimestamp();

                    Intent intent = new Intent(getApplicationContext(), MemoInputActivity.class);

                    intent.putExtra("mode","modify");
                    intent.putExtra("space", space);
                    intent.putExtra("contents", contents);
                    intent.putExtra("timestamp", timestamp);

                    startActivityForResult(intent, 1001);
                    MemoItemView view = new MemoItemView(MainActivity.this);

            }
        });

 

// 전달된 인텐트 데이터 처리(MemoInputActivity

        Intent intent = getIntent();
        mode = intent.getStringExtra("mode");
        MemoAdapter adapter = new MemoAdapter(this);
        if (mode != null && mode.equals("create")) {
            textView.setText("새 메모");

            Date date = new Date();
            String timestamp = dateFormat.format(date);

            textView2.setText(timestamp);
        } else if (mode.equals("modify")) {
            String space = intent.getStringExtra("space");
            String contents = intent.getStringExtra("contents");
            String timestamp = intent.getStringExtra("timestamp");


            Log.d("가져온 space",""+space);
            Log.d("가져온 contents",""+contents);
            Log.d("가져온 timestamp",""+timestamp);
            textView.setText("메모 수정");

            editText.setText(space);
            editText2.setText(contents);
            textView2.setText(timestamp);

            adapter.notifyDataSetChanged();
        }
//출력될 아이템 관리하기 (어댑터 getView 구현)
    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {

        MemoItemView view = null;
        if (convertView == null) {
            view = new MemoItemView(mContext);

        } else {
            view = (MemoItemView) convertView;
        }

        MemoItem item = items.get(position);

        view.setSpace(item.getSpace());
        view.setContents(item.getContents());
        view.setTimestamp(item.getTimestamp());
        return view;
    }
public class MemoItemView extends LinearLayout { (커스텀리스트뷰 형식)
    Context mContext;

    TextView textView;
    TextView textView2;
    TextView textView4;

    public MemoItemView(Context context) {
        super(context);

        mContext = context;
        init();

    }

    public MemoItemView(Context context, AttributeSet attrs) {
        super(context, attrs);

        mContext = context;
        init();
    }

    private void init() {
        LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        inflater.inflate(R.layout.memo_item, this, true);

        textView = (TextView) findViewById(R.id.textView);
        textView2 = (TextView) findViewById(R.id.textView2);
        textView4 = (TextView) findViewById(R.id.textView4);


    }

    public void setSpace(String space) {
        textView.setText(space);
    }

    public void setContents(String contents) {
        textView2.setText(contents);
    }

    public void setTimestamp(String timestamp) {
        textView4.setText(timestamp);
    }
}
public class MemoItem { (item클래스)

    String space;
    String contents;
    String timestamp;
    public MemoItem(String space, String contents, String timestamp) {
        this.space = space;
        this.contents = contents;
        this.timestamp = timestamp;
    }

    public String getSpace() {
        return space;
    }

    public void setSpace(String space) {
        this.space = space;
    }

    public String getContents() {
        return contents;
    }

    public void setContents(String contents) {
        this.contents = contents;
    }

    public String getTimestamp() {
        return timestamp;
    }

    public void setTimestamp(String timestamp) {
        this.timestamp = timestamp;
    }

}

아직 학생이라 모르는부분이 많습니다.. 열심히 하고있는데 잘 안되네요 도와주세요!

정모씨 (120 포인트) 님이 2016년 11월 22일 질문
혹시 이거 해결하셨나요??

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...