对话框弹出窗口中的字符串内容输入EditText字段

时间:2014-04-21 17:07:12

标签: android

我正在尝试创建一个功能,用户在对话框弹出框中输入名称,然后输入的名称会自动输入到下一页的EditText字段,有点像请求标题名称,然后制作下一页的标题。对话框弹出窗口部分正在运行,但是我在将值存储在&m;' m_Text'字符串变量进入EditText字段。请有人帮帮我!!!

以下是调用对话框的页面的代码....

    package com.evicapture.loadsave;

//import com.example.camerademo.R;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.text.InputType;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class IntroMenu extends Activity {

    public static String m_Text = "";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.intro);

        Button next = (Button) findViewById(R.id.NewCase);
        next.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                AlertDialog.Builder builder = new AlertDialog.Builder(IntroMenu.this);
                builder.setTitle("Insert Case Name/No:");

                final EditText input = new EditText(IntroMenu.this);
                input.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_NORMAL);
                builder.setView(input);

                builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {


                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        m_Text = input.getText().toString();
                        Intent myIntent = new Intent("com.evicapture.loadsave.CASEINFO");
                        startActivityForResult(myIntent, 0);

                    }
                });
                builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.cancel();

                    }
                });

                builder.show();

            }
        });


    }

以及使用EditText字段进行的字段的代码....

    package com.evicapture.loadsave;

//import com.example.camerademo.R;

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

public class caseInfo extends Activity {
    EditText etCaseNameNo;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.case_info_form);
        etCaseNameNo=(EditText)findViewById(R.id.tvCaseNameNo);

        etCaseNameNo.setText(IntroMenu.m_Text);

        Button next = (Button) findViewById(R.id.Back1);
        next.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                Intent myIntent = new Intent(view.getContext(),IntroMenu.class);
                startActivityForResult(myIntent, 0);
            }
        });


    }
}

如果还需要其他任何内容,请询问..我是Android编程的新手,我很挣扎,所以请善待..

谢谢!

1 个答案:

答案 0 :(得分:1)

你必须通过意图传递m_text(String)。

为此您可以使用:

putExtra:向意图添加扩展数据。

final String MESSAGE = "com.evicapture.loadsave.username";

m_Text = input.getText().toString();
Intent myIntent = new Intent("com.evicapture.loadsave.CASEINFO");
myIntent.putExtra(MESSAGE, strName);
startActivityForResult(myIntent, 0);

对于retreive,您可以使用:

  extras = getIntent().getExtras();
    if(extras == null) {
        newString= null;
    } else {
        newString= extras.getString(MESSAGE);
    }
etCaseNameNo.setText(newString);