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

코드 좀 봐주세요 모르겠습니다. 저장하는 법이요!

0 추천

많이 고민했고 이거저거 해봤는데 

 

이해력이 딸리는지 안됩니다. 도대체!!!!! 모르겠습니다!!! 

package watchlist.watchlist;

import android.content.SharedPreferences;
import android.graphics.AvoidXfermode;
import android.preference.PreferenceManager;
import android.provider.ContactsContract;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.jar.Attributes;

import static watchlist.watchlist.R.id.Edittext;

public class view100 extends AppCompatActivity {

    ListView lv;
    EditText nameTxt;
    Button addbtn, updatebtn, deletebtn, clearbtn;
    ArrayList<String> names = new ArrayList<String>();
    ArrayAdapter<String> adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.view100);
        lv = (ListView) findViewById(R.id.listView);
        nameTxt = (EditText) findViewById(Edittext);
        addbtn = (Button) findViewById(R.id.add);
        updatebtn = (Button) findViewById(R.id.update);
        deletebtn = (Button) findViewById(R.id.delete);
        clearbtn = (Button) findViewById(R.id.clear);


        //Adapter
        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_single_choice, names);
        lv.setAdapter(adapter);

        //set selected item
        lv.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                nameTxt.setText(names.get(position));
            }
        });

        addbtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                add();
            }
        });

        deletebtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                delete();
            }
        });

        updatebtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                update();
            }
        });

        clearbtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                clear();
            }
        });


    }



private void savePreferences(String name, int position, String value){
    SharedPreferences sharedPreferences = getSharedPreferences("pref", MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putString(name, value);

    editor.commit();


}

    private void getPreferences(String name)
    {
        SharedPreferences sharedPreferences = getSharedPreferences("pref", MODE_PRIVATE);
        sharedPreferences.getString(name, "");
    }



    private void add() {
        String name = nameTxt.getText().toString();
       // savePreferences(name,position,value);
        String value ="";
        int position = 0;
        savePreferences(name,position,value);
        getPreferences(name);



        if (!name.isEmpty() && name.length() > 0) {
            adapter.add(name);

            adapter.notifyDataSetChanged();


            nameTxt.setText("");
            Toast.makeText(getApplicationContext(), "추가한건 " + name, Toast.LENGTH_SHORT).show();

        } else {
            Toast.makeText(getApplicationContext(), "추가하세요", Toast.LENGTH_SHORT).show();
        }
    }




    private void update() {
        String name = nameTxt.getText().toString();

        int pos = lv.getCheckedItemPosition();

        if (!name.isEmpty() && name.length() > 0) {

            adapter.remove(names.get(pos));

            adapter.insert(name, pos);

            adapter.notifyDataSetChanged();

            Toast.makeText(getApplicationContext(), "수정된 건 " + name, Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(getApplicationContext(), "수정된 건 없어요", Toast.LENGTH_SHORT).show();
        }


    }

    private void delete() {
        int pos = lv.getCheckedItemPosition();

        if (pos > -1) {
            adapter.remove(names.get(pos));
            adapter.notifyDataSetChanged();
            nameTxt.setText("");


            Toast.makeText(getApplicationContext(), "지워짐 ", Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(getApplicationContext(), "지울게 없어요", Toast.LENGTH_SHORT).show();
        }


    }

    private void clear(){
        adapter.clear();

    }
}
Add하면 sharedpreferences로 저장해서 리스트뷰에 보이게해야하는데 
코딩적 사고가 안됩니다. ㅠㅠ 알려주세요 ㅠㅠ 
박대장마마 (120 포인트) 님이 2015년 12월 3일 질문

1개의 답변

0 추천
소스를 읽어 봤습니다. 지금 소스는 표현하는데 문제가 없습니다.

다만 의심이가는 부분은 xml에서 레이아웃 구성하는데 문제가 있어 보입니다.   ListView 쪽이나 ListView를 감싸고 있는 scrollview 쪽 또는 메인레이아웃쪽을 확인해보시면 될것같습니다.
전판진 (240 포인트) 님이 2015년 12월 4일 답변
...