【问题标题】:android carrying text form one class to a alertdialogandroid将文本从一类带到alertdialog
【发布时间】:2014-06-25 17:11:53
【问题描述】:

我想将文本从一个类中的编辑文本传送到另一个显示警告对话框的类。 我想输入edittext名称并将其放入警报对话框消息中。

public class forum extends Activity {

EditText name, place;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    name = (EditText) findViewById(R.id.name);
    place = (EditText) findViewById(R.id.place);

二等

public class AlertDemo extends DialogFragment {

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {

    /** Turn Screen On and Unlock the keypad when this alert dialog is displayed */
    getActivity().getWindow().addFlags(LayoutParams.FLAG_TURN_SCREEN_ON | LayoutParams.FLAG_DISMISS_KEYGUARD);

    /** Creating a alert dialog builder */
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

    /** Setting title for the alert dialog */
    builder.setTitle("alert");

    /** Setting the content for the alert dialog */
    builder.setMessage("alerting");

    /** Defining an OK button event listener */
    builder.setPositiveButton("alert", new OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            /** Exit application on click OK */
            getActivity().finish();
        }
    });

    /** Creating the alert dialog window */
    return builder.create();
}

【问题讨论】:

    标签: android dialog android-edittext alert android-alertdialog


    【解决方案1】:

    您可以使用 DialogFragment.setArguments & getArguments 方法

    示例代码如下,

    activity_main.xml

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="${packageName}.${activityClass}" >
    
        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/name"
            android:layout_alignBottom="@+id/name"
            android:layout_alignParentLeft="true"
            android:text="Name" />
    
        <EditText
            android:id="@+id/name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/textView2"
            android:layout_marginLeft="52dp"
            android:ems="10"
            android:inputType="textPersonName" >
    
            <requestFocus />
        </EditText>
    
        <EditText
            android:id="@+id/place"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/name"
            android:layout_below="@+id/name"
            android:layout_marginTop="16dp"
            android:ems="10"
            android:inputType="textPersonName" />
    
        <TextView
            android:id="@+id/TextView01"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/place"
            android:layout_alignBottom="@+id/place"
            android:layout_alignParentLeft="true"
            android:text="Place" />
    
        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/place"
            android:layout_marginTop="18dp"
            android:text="ShowAlertDemo"
            android:onClick="buttonClick" />
    
    </RelativeLayout>
    

    MainActivity.java

    package com.example.test;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
    
        EditText name, place;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            name = (EditText) findViewById(R.id.name);
            place = (EditText) findViewById(R.id.place);
    
            final Button button = (Button) findViewById(R.id.button1);
              button.setOnClickListener(new View.OnClickListener() {
                     public void onClick(View v) {
                        Toast.makeText(getApplicationContext(), "Button Clicked", Toast.LENGTH_LONG).show();
    
                        String nameText = name.getText().toString();
                        String placeText = place.getText().toString();
    
                        AlertDemo a = new AlertDemo();
    
    
                        Bundle args = new Bundle();
                        args.putString("nameText", nameText);
                        args.putString("placeText", nameText);
    
                        a.setArguments(args);
    
                         a.show(getFragmentManager(), "Confirm");
                     }
                 });
        }
    
    
    }
    

    AlertDemo.java

    package com.example.test;
    
    
    import android.app.AlertDialog;
    import android.app.Dialog;
    import android.app.DialogFragment;
    import android.content.DialogInterface;
    import android.content.DialogInterface.OnClickListener;
    import android.os.Bundle;
    import android.view.WindowManager.LayoutParams;
    
    
    public class AlertDemo extends DialogFragment {
    
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
    
        /** Turn Screen On and Unlock the keypad when this alert dialog is displayed */
        getActivity().getWindow().addFlags(LayoutParams.FLAG_TURN_SCREEN_ON | LayoutParams.FLAG_DISMISS_KEYGUARD);
    
        /**
         * Code to retreive values
         */
        String name = getArguments().getString("nameText");
        String place = getArguments().getString("placeText");
    
        /** Creating a alert dialog builder */
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    
        /** Setting title for the alert dialog */
        builder.setTitle("alert");
    
        /** Setting the content for the alert dialog */
        builder.setMessage("alerting Name:"+name+"  Place:"+place);
    
        /** Defining an OK button event listener */
        builder.setPositiveButton("alert", new OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                /** Exit application on click OK */
                getActivity().finish();
            }
        });
    
        /** Creating the alert dialog window */
        return builder.create();
    }
    

    }

    结果

    在文本框中输入文本并点击按钮

    文本从 MainActivity 传输到 Alert

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多