public class FragmentTab2 extends Fragment {
ArrayList<ContentsTemp> data;
ArrayAdapter<ContentsTemp> adapter;
GridView gridView;
View v, dialogView;
int txtId = 0;
Button btnAdd, btnInit;
Context con;
@Override
public void onDetach() {
// TODO Auto-generated method stub
super.onDetach();
}
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
getActivity();
View v = inflater.inflate(R.layout.mycontents, container, false);
con = v.getContext();
data = new ArrayList<ContentsTemp>();
FragmentTabs.sqlDB = FragmentTabs.myContentsHelper
.getReadableDatabase();
Cursor cursor;
cursor = FragmentTabs.sqlDB.rawQuery(
"SELECT * FROM mySecretData ORDER BY id DESC;", null);
// 0 1 2 3
// id title cont usid
// Constructor - String title, String context, String id, String userId
while (cursor.moveToNext()) {
int id = cursor.getInt(0);
String title = cursor.getString(1);
String contents = cursor.getString(2);
String userId = cursor.getString(3);
data.add(new ContentsTemp(title, contents, id, userId));
}
// Comparator<Object> com = Collections.reverseOrder();
// Collections.sort(data, com);
cursor.close();
FragmentTabs.sqlDB.close();
Log.e("e", "1");
adapter = new ArrayAdapter<ContentsTemp>(con, R.layout.entry,
R.id.titleName, data) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Log.e("e", "2");
LayoutInflater li = (LayoutInflater) con
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = li.inflate(R.layout.entry, null);
ContentsTemp temp = data.get(position);
Log.e("e", "3");
if (v != null) {
TextView tvTitle = ((TextView) v
.findViewById(R.id.titleName));
TextView tvContents = ((TextView) v
.findViewById(R.id.contentTxt));
TextView tvUserId = ((TextView) v.findViewById(R.id.userId));
TextView tvId = ((TextView) v.findViewById(R.id.numberId));
tvTitle.setText(temp.getTitle());
tvContents.setText(temp.getContext());
tvUserId.setText(temp.getUserId());
tvId.setText(Integer.toString(temp.getId()));
}
return v;
}
};
btnAdd = (Button) v.findViewById(R.id.btnAdd);
btnAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialogView = (View) View.inflate(getActivity(),
R.layout.inputdialog, null);
AlertDialog.Builder dlg = new AlertDialog.Builder(con);
dlg.setTitle("INPUT SECRET");
dlg.setView(dialogView);
dlg.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
EditText temp1, temp2;
String strTitle, strContents;
boolean out = false;
temp1 = (EditText) dialogView
.findViewById(R.id.edtTitle);
temp2 = (EditText) dialogView
.findViewById(R.id.edtContents);
strTitle = temp1.getText().toString();
strContents = temp2.getText().toString();
if (strTitle.length() == 0) {
Toast.makeText(getActivity(),
"InPut Title", Toast.LENGTH_LONG)
.show();
out = true;
} else if (strContents.length() == 0) {
Toast.makeText(getActivity(),
"InPut Contents", Toast.LENGTH_LONG)
.show();
out = true;
} else if (strTitle.length() != 0
&& strContents.length() != 0) {
data.add(new ContentsTemp(strTitle,
strContents));
out = true;
FragmentTabs.sqlDB = FragmentTabs.myContentsHelper
.getWritableDatabase();
FragmentTabs.sqlDB
.execSQL("INSERT INTO mySecretData VALUES (NULL,'"
+ strTitle
+ "', '"
+ strContents
+ "', 'abc') ;");
Intent intent = new Intent(getActivity(),
FragmentTabs.class);
startActivity(intent);
}
}
});
dlg.setNegativeButton("Cancel", null);
dlg.show();
}
});
btnInit = (Button) v.findViewById(R.id.btnInit);
btnInit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder dlg = new AlertDialog.Builder(con);
dlg.setTitle("Clear database? ");
dlg.setMessage("REALLY DELETE?");
dlg.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
FragmentTabs.sqlDB = FragmentTabs.myContentsHelper
.getWritableDatabase();
FragmentTabs.sqlDB
.execSQL("DELETE FROM mySecretData");
Intent intent = new Intent(getActivity(),
FragmentTabs.class);
startActivity(intent);
}
});
dlg.setNegativeButton("Cancel", null);
dlg.show();
}
});
gridView = (GridView) v.findViewById(R.id.myContentsGridView);
gridView.setAdapter(adapter);
return v;
}
}
기본이 액션바에서 선택된 탭을
액티비티에서 Fragment로 만들어진 부분을 만들도록 하였는데
Fragment 를 상속 받아서 사용하니까.
데이터가 데이터 베이스에서 업데이트 되거나 삭제될때 업데이트가 되지 않습니다.
제가 빠진 메서드를 나 다른 방법이 없는가 합니다.
지금은 인텐드를 이용하여 뷰를 다시 새로 가져오는 방법을 사용하고 있습니다.
Fragment 이용하여 onCreateView() 메서드를 이용하여 update 기능을 사용가능한지 궁금합니다.