Android Open Source - droidnotes Notes List Activity






From Project

Back to project page droidnotes.

License

The source code is released under:

GNU General Public License

If you think the Android project droidnotes listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.example.droidnotes.app;
//from w  w w  . ja va2 s.  c o m
import android.app.Activity;
import android.app.LoaderManager;
import android.content.Loader;
import android.database.Cursor;
import android.os.Bundle;
import android.view.View;
import android.widget.*;

public class NotesListActivity extends Activity implements LoaderManager.LoaderCallbacks<Cursor>{

    ListView mNotesList;
    ImageButton mButtonAdd;

    SimpleCursorAdapter mAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_notes_list);

        try {
            initClassData();
            setupLoader();
            setupCallbacks();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    protected void initClassData() {
        mNotesList = (ListView) findViewById(R.id.notes_list);
        mButtonAdd = (ImageButton) findViewById(R.id.button_add);
    }

    protected void setupLoader() {
        // For the cursor adapter, specify which columns go into which views
        String[] fromColumns = {DNModel.Notes.NOTE};
        int[] toViews = {android.R.id.text1}; // (the TextView in simple_list_item_1)

        // Create an empty adapter we will use to display the loaded data
        // We pass null for the cursor, then update it in onLoadFinished()
        mAdapter = new SimpleCursorAdapter(
                this,
                android.R.layout.simple_list_item_1,
                null,
                fromColumns,
                toViews,
                0
        );
        mNotesList.setAdapter(mAdapter);

        // Prepare the loader.  Either re-connect with an existing one, or start a new one
        getLoaderManager().initLoader(0, null, this);
    }

    protected void setupCallbacks() {
        mButtonAdd.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onButtonAddClick();
            }
        });

        mNotesList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                onListItemClick(position);
            }
        });

        mNotesList.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
                onListItemLongClick(position);
                return true;
            }
        });
    }

    protected void onButtonAddClick() {
        DNHelper.spawnInsertNoteActivity(this, -1);
    }

    protected void onListItemClick(int position) {
        mAdapter.getCursor().moveToPosition(position);
        DNHelper.spawnInsertNoteActivity(this, mAdapter.getCursor().getInt(0));
    }

    protected void onListItemLongClick(int position) {
        mAdapter.getCursor().moveToPosition(position);
        DNHelper.spawnDeleteNoteDialog(this, mAdapter.getCursor().getInt(0));
    }

    @Override
    public Loader<Cursor> onCreateLoader(int id, Bundle args) {
        return DNHelper.getNotesLoader(this);
    }

    @Override
    public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
        mAdapter.swapCursor(data);
    }

    @Override
    public void onLoaderReset(Loader<Cursor> loader) {
        mAdapter.swapCursor(null);
    }

}




Java Source Code List

com.example.droidnotes.app.ApplicationTest.java
com.example.droidnotes.app.DNHelper.java
com.example.droidnotes.app.DNModel.java
com.example.droidnotes.app.InsertNoteActivity.java
com.example.droidnotes.app.NotesListActivity.java