0

データベースから alerttdialog を生成します。これらの値を に保存arrayListし、charsequence リストに変換してから、alertdialog ビルダーに設定します。示されているように:

これは、データベースから入力された「テキスト テンプレート」オプションのスクリーンショットです。

ここに画像の説明を入力

たとえば、オプションの1つをクリックした瞬間Call me。指定された編集テキスト内に表示されます。「Email me」などの他のオプションをクリックすると、これは無視され、最初の「if」オプションのみが表示されますCall me。次のように動作します。

ここに画像の説明を入力

これにより、何らかの理由でCall mecharsequence 配列にのみ追加されたと信じるようになりますが、その理由はわかりません。これが私の完全なクラスです。メソッドでこの問題が発生していlongOnClickます。以下のコードでこの問題の領域をマークしました。

 package com.example.flybase2;

import java.util.ArrayList;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.text.Editable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class ContactsEmail extends Activity implements OnClickListener, OnLongClickListener{

String emailPassed;
String emailAdd;
String emailSub;
String emailMess;
EditText setEmailAddress;
EditText setEmailSubject;
EditText setEmailMessage;
Button btnSendEmail;
int i;
CharSequence[] items;
DBHandlerTempComms addTemp = new DBHandlerTempComms(this, null, null);




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

setContentView(R.layout.emaillayout);



Bundle extras = getIntent().getExtras(); 
if (extras != null) {
    emailPassed = extras.getString("passedEmailAdd"); 
}


setEmailAddress = (EditText) findViewById (R.id.inputEmailAddress);
setEmailAddress.setText(emailPassed);
setEmailSubject = (EditText) findViewById (R.id.inputEmailSubject);
setEmailMessage = (EditText) findViewById (R.id.inputEmailMessage);



btnSendEmail = (Button)findViewById(R.id.btnSendEmail);

btnSendEmail.setOnClickListener(this);

setEmailMessage.setOnLongClickListener(this);

}


@Override
public void onClick(View sendEmailClick) {

    emailAdd = setEmailAddress.getText().toString();
    emailSub = setEmailSubject.getText().toString();
    emailMess = setEmailMessage.getText().toString();

    Intent sendEmailIntent = new Intent(Intent.ACTION_SEND); 
    sendEmailIntent.setType("message/rfc822");
       sendEmailIntent.putExtra(Intent.EXTRA_EMAIL,new String[] {emailAdd});  
       sendEmailIntent.putExtra(Intent.EXTRA_SUBJECT, emailSub); 
       sendEmailIntent.putExtra(Intent.EXTRA_TEXT, emailMess); 
       startActivity(Intent.createChooser(sendEmailIntent, "Send mail..."));
       finish();

}

 *********************ISSUE AREA********************
        @Override
        public boolean onLongClick(View v) {



            addTemp.open();
            Cursor getTemps = addTemp.setList();
            addTemp.close();



            if (getTemps != null) {
                String[] from = new String[getTemps.getCount()];
                startManagingCursor(getTemps);
                if (getTemps.moveToFirst()) {
                    int count = 0;
                    do {
                        String userName = getTemps.getString(1);
                        from[count] = userName;
                        count++;
                    } while (getTemps.moveToNext());
                }

                ArrayList<String> content = new ArrayList<String>();  

               for (int a = 0; a < from.length; a ++)
               { 

               content.add(from[a]);              

               }           
               items = content.toArray(new CharSequence[content.size()]);
            }


            Builder alertDialogBuilder = new AlertDialog.Builder(ContactsEmail.this);

            alertDialogBuilder.setTitle("Message Templates:");



            alertDialogBuilder.setItems(items, new DialogInterface.OnClickListener() {

                public void onClick(DialogInterface dialog, int item) {

                    if (items[item].equals("Call me.")) {

                        setEmailMessage.setText(items[item]);

                    }

                    else if (items[item].equals("Text me.")) {

                        setEmailMessage.setText(items[item]);


                    }

                    else if (items[item].equals("Leaving the house now.")) {


                        setEmailMessage.setText(items[item]);

                    }

                    else if (items[item].equals("Leaving work now.")) {


                        setEmailMessage.setText(items[item]);

                    }

                    else if (items[item].equals("Create New Template +")) {


                        AlertDialog.Builder builder = new AlertDialog.Builder(ContactsEmail.this);
                        builder.setTitle("Type New Template:");


                                                final EditText input = new EditText(ContactsEmail.this);

                                                builder.setView(input);

                                                builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                                                public void onClick(DialogInterface dialog, int whichButton) {
                                                  Editable value = input.getText();

                                                  setEmailMessage.setText(value);

                                                  String templateValue = (String)value.toString();
                                                  addTemp.open();
                                                  addTemp.insertTemplate(templateValue);
                                                  addTemp.close();


                                                  }
                                                });

                                                builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                                                  public void onClick(DialogInterface dialog, int whichButton) {

                                                  }
                                                });

                                                builder.show();

                    }

                }
               });

            alertDialogBuilder.show();


            return true;
        }


}
4

1 に答える 1

0

少し恥ずかしいですが、IF を charsequence に格納されている文字列と比較すると、異なる文字列があることに気付きました。

于 2013-02-08T21:43:14.623 に答える