package jp.mydns.sys1yagi.android.evernotesdkandroidsample; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.ListFragment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.Toast; import com.evernote.client.android.AsyncNoteStoreClient; import com.evernote.client.android.ClientFactory; import com.evernote.client.android.EvernoteSession; import com.evernote.client.android.EvernoteSession.EvernoteService; import com.evernote.client.android.OnClientCallback; import com.evernote.edam.notestore.NoteFilter; import com.evernote.edam.notestore.NoteList; import com.evernote.edam.type.Note; import com.evernote.edam.type.NoteSortOrder; public class MainFragment extends ListFragment { private final static String TAG = MainFragment.class.getSimpleName(); EvernoteService mEvernoteService = EvernoteService.SANDBOX; private SessionProvider mProvider; public static MainFragment newInstance() { MainFragment fragment = new MainFragment(); return fragment; } public MainFragment() { } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); LayoutInflater layoutInflater = getActivity().getLayoutInflater(); View header = layoutInflater.inflate(R.layout.add_note, null); getListView().addHeaderView(header); ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1); setListAdapter(adapter); getListView().setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapter, View view, int pos, long id) { Log.d(TAG, "item click:" + pos); if (pos == 0) { // add Intent intent = new Intent(getActivity(), EditNoteActivity.class); startActivity(intent); } else { // edit } } }); } @Override public void onResume() { super.onResume(); // ここで読みに行く ClientFactory factory = mProvider.getEvernoteSession() .getClientFactory(); try { AsyncNoteStoreClient client = factory.createNoteStoreClient(); NoteFilter filter = new NoteFilter(); filter.setOrder(NoteSortOrder.UPDATED.getValue()); filter.setWords("evernote_sample"); client.findNotes(filter, 0, 20, new OnClientCallback<NoteList>() { public void onSuccess(NoteList data) { ArrayAdapter<String> adapter = (ArrayAdapter<String>) getListAdapter(); adapter.clear(); for (Note note : data.getNotes()) { adapter.add(note.getTitle()); } adapter.notifyDataSetChanged(); }; @Override public void onException(Exception exception) { exception.printStackTrace(); Toast.makeText(getActivity(), "接続に失敗しました", Toast.LENGTH_SHORT).show(); } }); } catch (Exception e) { e.printStackTrace(); Toast.makeText(getActivity(), "接続に失敗しました", Toast.LENGTH_SHORT) .show(); } } @Override public void onAttach(Activity activity) { super.onAttach(activity); try { mProvider = (SessionProvider) activity; } catch (ClassCastException e) { throw new ClassCastException(activity.toString() + " must implement SessionProvider"); } } @Override public void onDetach() { super.onDetach(); } public interface SessionProvider { public EvernoteSession getEvernoteSession(); } }