2012-05-08 6 views
0

私は、メッセージを入力として受け取り、データベースに格納された定義済みの番号に送信するアプリを開発しています!アプリケーションがロードされたときにデータベースに数値を挿入していることを知っているoncreate()メソッド私は最初にメッセージを送信するたびに4番号にメッセージを送信すると、secnd試行で8個の数字に疲れて疲れます私のデータ挿入コードを動かして、データを一度に読み込むのではなく、一度だけ挿入するようにしますが、動作しないようにしてください。アンドロイドアプリを通じてデータベースに保存された連絡先にSMSを送信する方法は?

btnSendSMS.setOnClickListener(new View.OnClickListener() 
    { 
     public void onClick(View v) 
     { 
      //loop++; 

       db.open(); 
       //loop++; 
        long id; 


        id = db.insertTitle(
          "5556"); 
        id = db.insertTitle(
          "5556"); 

        id = db.insertTitle(
          "5556"); 

        id = db.insertTitle(
          "5556"); 

       db.close(); 


      message = txtMessage.getText().toString();     
      if (message.length()>0 && message.length()<200)     
      { 
       db.open(); 
       Cursor c = db.getAllTitles(); 
       if (c.moveToFirst()) 
       { 


        String phoneNo; 

        do { phoneNo=c.getString(1) ; 
         sendSMS(phoneNo,message);  
         count++; 
         // db.DisplayTitle(c); 
         Toast.makeText(DatabaseSmsActivity.this,"sms no : "+count,Toast.LENGTH_LONG).show(); 

        } while (c.moveToNext()); 
       } 
       db.close(); 
       // Toast.makeText(DatabaseSmsActivity.this,"Total SMS sent : "+count,Toast.LENGTH_LONG).show(); 

      }  


      else 
       {Toast.makeText(getBaseContext(), 
        "Please enter message.", 
        Toast.LENGTH_SHORT).show();} 

     } 
    });   

}

+0

あなたが私たちと一緒に使用しているコードを教えていただけますか? –

+0

ここにお返事いただきありがとうございます。ボトルトンには、データベースに番号を挿入し、それらをフェッチしてSMSのヘルプを送信するコードがあります。 – Ashu

答えて

0

ドント挿入番号毎回のonCreate()だけ一度挿入した時点から前回とその数を更新呼び出します。私はこれがあなたの問題を解決すると思う。

+0

preferences = getSharedPreferences(PREFS、MODE_PRIVATE); //タイプが一致しません:SharedPreferencesをPreferences SharedPreferencesに変換できません.Editor preferencesEditor = preferences.edit(); //これらのエラーは、私がそれらのアプリケーションを修正すれば、これらのエラーは強制終了ですか?どうしましたか ? – Ashu

+0

Murat Nafizがあなたの助けに感謝します!エラーは実行されて削除されますが、nothingsはボタンクリックで発生します私はデータが挿入されていないと思う! – Ashu

+0

私はまだこの時点で立ち往生しています誰もplzzzzヘルプ! – Ashu

0

このコードでは、ユーザがボタンをクリックするたびに数字5556がデータベースに4回挿入されます。これは、ユーザーがボタンをもう一度クリックしたときに、別の4つの5556行が追加されたことを意味します。

あなたが作ってみたいと思うのは、ユーザーがボタンをクリックしたときに、4つの番号であるデータベースの定義済みの番号にSMSを送信するだけですか?

その場合:

private void enterNumbersToDatabase(){ 
if(!preferences.getBoolean("isNumbersAddedToDB", false)){ 

db.open(); 
long id; 

id = db.insertTitle("5556"); 
id = db.insertTitle("5556"); 
id = db.insertTitle("5556"); 
id = db.insertTitle("5556"); 
    db.close(); 
SharedPreferences.Editor preferencesEditor = preferences.edit(); 
    preferencesEditor.putBoolean("isNumbersAddedToDB", true) 
preferencesEditor.commit(); 
} 
} 

enterNumbersToDatabase()

public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    preferences = getSharedPreferences(PREFS, MODE_PRIVATE); 
    enterNumbersToDatabase(); 
} 

enterNumbersToDatabase機能などの機能を呼び出すアクティビティののonCreateメソッドであなたの活動に

public static final String PREFS = "prefs"; 
private SharedPreferences preferences; 

を静的変数を追加します。

ボタンのonClick機能でadding numbers to database partをスキップしても問題ありません。

ご希望の方は

+0

SharedPreferences.Editor preferencesEditor = preferences.edit(); //メソッドedit()はタイプのために定義されていません。Preferences – Ashu

+0

私の回答を編集 –

+0

@ Murat Nafizあなたは助けてくれるでしょうか!! – Ashu