Fragment
Добавлено: 13 июл 2015, 16:11
Очень понравился ваш канал! Я в android новичок. Но с помощью канала вдохновился на создание приложения
. Делаю простенькую прогу и столкнулся с проблемой. Делаю редактор текста, а точней блокнот. Работаю с Fragment. Есть код на блокнот, но он не подходит для Fragment.
Вот главное Activity:
С некоторыми строчками кода разобрался, но все же остались другие. Ошибка выходит в:
super.onLionListItemClick(l, v, position, id);
setListAdapter(notes);
registerForContextMenu(getListView());
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent)
Как тут быть?
Вот главное Activity:
Код: Выделить всё
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.ContextMenu;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import com.sample.drawer.NoteEdit;
import com.sample.drawer.NotesDbAdapter;
import com.sample.drawer.R;
public class Fragment4 extends Fragment {
private static final int ACTIVITY_CREATE=0;
private static final int ACTIVITY_EDIT=1;
private static final int DELETE_ID = Menu.FIRST;
private int mNoteNumber = 1;
private NotesDbAdapter mDbHelper;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.notelist, container, false);
mDbHelper = new NotesDbAdapter (this.getActivity());
mDbHelper.open();
fillData();
registerForContextMenu(getListView());
Button addnote = (Button) getView().findViewById(R.id.addnotebutton);
addnote.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
createNote();
}
});
}
private void createNote() {
Intent i = new Intent(this.getActivity(), NoteEdit.class);
startActivityForResult(i, ACTIVITY_CREATE);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onLionListItemClick(l, v, position, id);
Intent i = new Intent(this.getActivity(), NoteEdit.class);
i.putExtra(NotesDbAdapter.KEY_ROWID, id);
startActivityForResult(i, ACTIVITY_EDIT);
}
private void fillData() {
// Get all of the notes from the database and create the item list
Cursor notesCursor = mDbHelper.fetchAllNotes();
getActivity().startManagingCursor(notesCursor);
String[] from = new String[] { NotesDbAdapter.KEY_TITLE ,NotesDbAdapter.KEY_DATE};
int[] to = new int[] { R.id.text1 ,R.id.date_row};
// Now create an array adapter and set it to display using our row
SimpleCursorAdapter notes =
new SimpleCursorAdapter(this.getActivity(), R.layout.notes_row, notesCursor, from, to);
setListAdapter(notes);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.add(0, DELETE_ID, 0, R.string.menu_delete);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
switch(item.getItemId()) {
case DELETE_ID:
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
mDbHelper.deleteNote(info.id);
fillData();
return true;
}
return super.onContextItemSelected(item);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
fillData();
}
}
super.onLionListItemClick(l, v, position, id);
setListAdapter(notes);
registerForContextMenu(getListView());
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent)
Как тут быть?