-2

http 応答で post メソッドを使用して、Android アプリから Web サイトにデータを渡したいと考えています。

私が今欲しいのは、追加ボタンを1つ与えることです。追加をクリックすると、編集テキストと保存ボタンを持つ編集アクティビティが開き、データまたはテキストを入力して保存ボタンをクリックすると、Webサイトに移動する必要があります。アプリからウェブサイトにデータを送信または投稿するために、データベースももう必要ありません。

メインアクティビティ.java

public class MainActivity extends ListActivity implements FetchDataListener
{
    private static final int ACTIVITY_CREATE=0;
    private ProgressDialog dialog;
    private ProjectsDbAdapter mDbHelper;
    private SimpleCursorAdapter dataAdapter;


    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        //setContentView(R.layout.activity_list_item);  
         mDbHelper = new ProjectsDbAdapter(this);
            mDbHelper.open();
            //fillData();
            //registerForContextMenu(getListView());
        initView();
    }



    private void initView()
    {
        // show progress dialog
        dialog = ProgressDialog.show(this, "", "Loading...");
        String url = "http://floating-wildwood-1154.herokuapp.com/posts.json";
        FetchDataTask task = new FetchDataTask(this);
        task.execute(url);

        mDbHelper.open();   
        Cursor projectsCursor = mDbHelper.fetchAllProjects();
        //startManagingCursor(projectsCursor);

        // Create an array to specify the fields we want to display in the list (only TITLE)
        String[] from = new String[]{ProjectsDbAdapter.KEY_TITLE};

        // and an array of the fields we want to bind those fields to (in this case just text1)
        int[] to = new int[]{R.id.text1};

        /* Now create a simple cursor adapter and set it to display
        SimpleCursorAdapter projects = 
                new SimpleCursorAdapter(this, R.layout.activity_row, projectsCursor, from, to);
        setListAdapter(projects);
        */
        // create the adapter using the cursor pointing to the desired data 
        //as well as the layout information
         dataAdapter  = new SimpleCursorAdapter(
          this, R.layout.activity_row, 
          projectsCursor, 
          from, 
          to,
          0);
         setListAdapter(dataAdapter);

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        //getMenuInflater().inflate(R.menu.activity_main, menu);
        super.onCreateOptionsMenu(menu);
         MenuInflater mi = getMenuInflater();
            mi.inflate(R.menu.activity_main, menu); 
        return true;

    }

     @Override
        public boolean onMenuItemSelected(int featureId, MenuItem item) {

                createProject();

            return super.onMenuItemSelected(featureId, item);
     }

     private void createProject() {
            Intent i = new Intent(this, ProjectEditActivity.class);
            startActivityForResult(i, ACTIVITY_CREATE);   
        }

     @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
            super.onActivityResult(requestCode, resultCode, intent);
            initView();
        }

    @Override
    public void onFetchComplete(List<Application> data)
    {
        // dismiss the progress dialog
        if ( dialog != null )
            dialog.dismiss();
        // create new adapter
        ApplicationAdapter adapter = new ApplicationAdapter(this, data);
        // set the adapter to list
        setListAdapter(adapter);
    }

    @Override
    public void onFetchFailure(String msg)
    {
        // dismiss the progress dialog
        if ( dialog != null )
            dialog.dismiss();
        // show failure message
        Toast.makeText(this, msg, Toast.LENGTH_LONG).show();
    }
}

projecteditactivity.java

public class ProjectEditActivity extends Activity {
    private EditText mTitleText;
     private Button mConfirmButton;
     private Long mRowId;
     private ProjectsDbAdapter mDbHelper;


    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
         mDbHelper = new ProjectsDbAdapter(this);
        setContentView(R.layout.activity_project_edit);

         mTitleText = (EditText) findViewById(R.id.title);
         mConfirmButton = (Button) findViewById(R.id.confirm);

        mRowId = savedInstanceState != null ? savedInstanceState.getLong(ProjectsDbAdapter.KEY_ROWID) 
                                            : null;
        registerButtonListenersAndSetDefaultText();
    }
    private void setRowIdFromIntent() {
        if (mRowId == null || mRowId.longValue() == 0) {
            Bundle extras = getIntent().getExtras();            
            mRowId = extras != null ? extras.getLong(ProjectsDbAdapter.KEY_ROWID) 
                                    : null;

        }
    }

     @Override
        protected void onPause() {
            super.onPause();
            mDbHelper.close(); 
        }
     @Override
        protected void onResume() {
            super.onResume();
            mDbHelper.open(); 
            setRowIdFromIntent();
            populateFields();
        }

     private void registerButtonListenersAndSetDefaultText() {
         mConfirmButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    saveState(); 
                    setResult(RESULT_OK);
                    Toast.makeText(ProjectEditActivity.this, getString(R.string.task_saved_message), Toast.LENGTH_SHORT).show();
                    finish(); 
                }

            });
     }
     private void populateFields()  {
         if (mRowId != null) {
                Cursor Project = mDbHelper.fetchProject(mRowId);
                startManagingCursor(Project);
                mTitleText.setText(Project.getString(
                        Project.getColumnIndexOrThrow(ProjectsDbAdapter.KEY_TITLE)));
                Project.close();
         }
                else {
                    // This is a new task - add defaults from preferences if set. 
                    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 
                    String defaultTitleKey = getString(R.string.pref_task_title_key);
                    String defaultTitle = prefs.getString(defaultTitleKey, null);
                    if(defaultTitle != null)
                    mTitleText.setText(defaultTitle); 
                }

     }

         @Override
            protected void onSaveInstanceState(Bundle outState) {
                super.onSaveInstanceState(outState);
                outState.putLong(ProjectsDbAdapter.KEY_ROWID, mRowId);
            }

         private void saveState() {
            String title = mTitleText.getText().toString();
            //if (mRowId == null) 
            if (mRowId == null || mRowId.longValue() == 0)
            {

                long id = mDbHelper.createProject(title);
                if (id > 0) {
                    mRowId = id;
                      }
                   } else {
                            mDbHelper.updateProject(mRowId, title);
                      }


                     }

     }

ここではdbを使用していますが、アプリでdbを使用したくありません。編集テキストに入力しているものは何でも、保存ボタンをクリックした後、データをサーバーに渡すか送信する必要があります。私のアプリ。

4

3 に答える 3