많이 고민했고 이거저거 해봤는데
이해력이 딸리는지 안됩니다. 도대체!!!!! 모르겠습니다!!!
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로 저장해서 리스트뷰에 보이게해야하는데
코딩적 사고가 안됩니다. ㅠㅠ 알려주세요 ㅠㅠ