2017-03-17 14 views
0

私は現在3つのボタンを持っていますが、1つは更新のためのもので、タイトルを更新することができます。削除:データベースエントリを削除できます。これらは現在正常に動作します。EditTextとDatabase onClickの更新

Complete(completeBtn)という3番目のボタンを追加しました。ユーザーがCompleteボタンを押すと、EditText(titleText)が "Marked Complete"に変更され、タイトルエントリがデータベース内で変更されます。私はかなり近いと思うが、問題が何であるかはわからない。

そこには、エラーであることショーは現在ありませんが、私は完全にボタンを押したとき、それは「完全マーク」するのTitleTextのためのEditTextを変更したり、

「完了マーク」するために、データベースに格納されているタイトルの値を変更しません。

助けていただければ幸いです。 :)

ModifyDeadlines.java

package com.example.pc.achieve; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

public class ModifyDeadline extends Activity implements OnClickListener { 

private EditText titleText; 
private Button updateBtn, completeBtn, deleteBtn; 
private EditText descText; 

private long _id; 

private DBManager dbManager; 

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

    setTitle("Modify Record"); 

    setContentView(R.layout.activity_modify_record); 

    dbManager = new DBManager(this); 
    dbManager.open(); 

    titleText = (EditText) findViewById(R.id.subject_edittext); 
    descText = (EditText) findViewById(R.id.description_edittext); 

    updateBtn = (Button) findViewById(R.id.btn_update); 
    deleteBtn = (Button) findViewById(R.id.btn_delete); 

    completeBtn = (Button) findViewById(R.id.btn_complete); 
    titleText.setText("Marked Complete" + completeBtn.getText()); 

    Intent intent = getIntent(); 
    String id = intent.getStringExtra("id"); 
    String name = intent.getStringExtra("title"); 
    String desc = intent.getStringExtra("desc"); 

    _id = Long.parseLong(id); 

    titleText.setText(name); 
    descText.setText(desc); 

    updateBtn.setOnClickListener(this); 
    deleteBtn.setOnClickListener(this); 
    completeBtn.setOnClickListener(this); 
} 

@Override 
public void onClick(View v) { 
    switch (v.getId()) { 
     case R.id.btn_update: 
     case R.id.btn_complete: 
      String title = titleText.getText().toString(); 
      String desc = descText.getText().toString(); 

      dbManager.update(_id, title, desc); 
      this.returnHome(); 
      break; 

     case R.id.btn_delete: 
      dbManager.delete(_id); 
      this.returnHome(); 
      break; 
    } 
} 

public void returnHome() { 
    Intent home_intent = new Intent(getApplicationContext(), ViewDeadlines.class) 
      .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(home_intent); 
} 
} 
+0

問題点は何ですか? –

+0

あなたはどこにエラーがあるか教えてください! – rafsanahmad007

+0

現在表示されているエラーはありませんが、[完了]ボタンを押すと、EditTextが「完了」に変更されたり、データベースに保存されているタイトルの値が「完了」に変更されません。 – ZenoX

答えて

1

は、私はあなたがミスマッチングあなたのbuttonクリック実装

これを試していると思います。

@Override 
    public void onClick(View v) { 
     switch (v.getId()) { 
      case R.id.btn_update: 

       String title = titleText.getText().toString(); 
       String desc = descText.getText().toString(); 

       dbManager.update(_id, title, desc); 
       this.returnHome(); 
       break; //missing break statement 

      case R.id.btn_complete: 
       titleText.setText("Marked Complete" + completeBtn.getText()); 
       complete(); 
       break; 

      case R.id.btn_delete: 
       dbManager.delete(_id); 
       this.returnHome(); 
       break; 
     } 
    } 

    public void complete(){ 
     String title = titleText.getText().toString(); 
     String desc = descText.getText().toString(); 

     dbManager.update(_id, title, desc); 
    } 
+0

ありがとうございましたが、EditTextは更新されますが、データベースのタイトルは更新されていません。 dbManager.update(_id、title、desc)を追加しようとしました。あなたが提供したコードの下に、私はそれが既にスコープで定義されているというエラーが出ます? – ZenoX

+1

すでにスコープ内に定義されているものは? – rafsanahmad007

+0

String title = titleText.getText()。toString(); 文字列desc = descText.getText()。toString(); – ZenoX

関連する問題