选择选项时,ArrayList到charsequence转换问题

时间:2013-02-08 21:16:17

标签: java android arraylist charsequence

我从数据库填充alerttdialog。我将这些值存储在arrayList中,将它们转换为charsequence列表,然后将它们设置为我的alertdialog构建器。如图所示:

这是我数据库中填充的“文本模板”选项的屏幕截图:

enter image description here

当我点击我的一个选项时,例如Call me。它在指定的edittext中显示它应该显示。如果我点击其他选项之一,例如“向我发送电子邮件”,则会被忽略,只有我的第一个“if”选项Call me。将如图所示:

enter image description here

这让我相信由于某些原因只有Call me被添加到我的charsequence数组中,但我不确定为什么。这是我的完整课程。我在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;
        }


}

1 个答案:

答案 0 :(得分:0)

稍微尴尬但我刚刚意识到我有不同的字符串比较我的IF与存储在charsequence中的字符串,所以它现在正在工作!