将EditText的值存储到字符串变量不起作用

时间:2015-12-25 21:13:13

标签: java android xml android-layout

我的问题与之前在本网站上就同一主题提出的其他问题有所不同。关于我们如何将EditText字段中的文本存储到字符串的答案以

的形式给出
EditText input = (EditText) findViewById(R.id.inputId);
String str = input.getText().toString();

我的问题有点不同。

我的java主要活动是:

    package com.example.fahadsaleem.xyz;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import org.w3c.dom.Text;


public class MainActivity extends AppCompatActivity {
    public String str;




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



        TextView calc_monday = (TextView) findViewById(R.id.monday_calc);


        calc_monday.setOnClickListener(
                new Button.OnClickListener(){
                    public void onClick(View v){

                        CustomDialogClass cdd = new CustomDialogClass(MainActivity.this);
                        cdd.show();
                        TextView text1 = (TextView) cdd.findViewById(R.id.Subject_ID);
                        text1.setText(str);
                        TextView text2 = (TextView) cdd.findViewById(R.id.Room_ID);
                        text2.setText("6 (SEECS)");
                        TextView text3 = (TextView) cdd.findViewById(R.id.Time_ID);
                        text3.setText("09:00am  09:50am");
                    }
                }
        );

        calc_monday.setOnLongClickListener(
                new Button.OnLongClickListener() {
                    public boolean onLongClick(View v) {
                        kj monday_calc = new kj(MainActivity.this);
                        monday_calc.show();

                        return true;
                    }
                }


        );
}
}

kj类具有以下代码:

    package com.example.fahadsaleem.xyz;

import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

/**
 * Created by Fahad Saleem on 12/22/2015.
 */
public class kj extends Dialog implements android.view.View.OnClickListener  {

    public Activity c;
    public Dialog d;
    public Button back;

    public kj(Activity a) {
        super(a);
        // TODO Auto-generated constructor stub
        this.c = a;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.setting_dialog);

        back = (Button) findViewById(R.id.set_btnn);


        back.setOnClickListener(this);






    }

    @Override
    public void onClick(View v){
        switch (v.getId()){
            case R.id.set_btnn:
                MainActivity police = new MainActivity();
                EditText set_monday_calc = (EditText) findViewById(R.id.set_Subject_ID);

                // Store EditText in Variable

                police.str = set_monday_calc.getText().toString();
                dismiss();

                break;
            default:
                break;

        }
        dismiss();

    }
}

基本上,应用程序界面有一个主题时间表。单击主题名称时,会出现一个对话框,显示3个内容:主题名称,房间号和时间段。

现在我想要的是我应该能够通过长按主题名称来改变3件事。我试图在类kj中使用此按钮来实现:

            case R.id.set_btnn:
                MainActivity police = new MainActivity();
                EditText set_monday_calc = (EditText) findViewById(R.id.set_Subject_ID);

                // Store EditText in Variable



                police.str = set_monday_calc.getText().toString();
                dismiss();

此变量str在MainActivity java文件中声明。当用户在主题名称上输入文本并单击此按钮时,文本应存储在str变量中。

但这不会发生。当我开始在界面上的EditText字段上编写任何文本时,如下所示:

enter image description here

日志中出现以下错误:

enter image description here

然后当我单击Go Back按钮时应该设置我写入变量str的文本,在日志中会出现以下错误:

enter image description here

稍后当我单击主题时,我点击按钮之前写的内容没有显示,而是显示空白空间,这是在mainactivity java文件中由此行声明的:

public String str;

像这样:

enter image description here

有什么问题?以下是其余文件:

CustomDialogClass:

    package com.example.fahadsaleem.xyz;

import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.TextView;

/**
 * Created by Fahad Saleem on 12/22/2015.
 */
public class CustomDialogClass extends Dialog implements android.view.View.OnClickListener  {

    public Activity c;
    public Dialog d;
    public Button back;

    public CustomDialogClass(Activity a) {
        super(a);
        // TODO Auto-generated constructor stub
        this.c = a;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.custom_dialog);

        back = (Button) findViewById(R.id.btnn);


        back.setOnClickListener(this);






    }

    @Override
    public void onClick(View v){
        switch (v.getId()){
            case R.id.btnn:
                dismiss();
                break;
            default:
                break;

        }
        dismiss();
    }
    }

activity_main.xml中:

<?xml version="1.0" encoding="utf-8"?>
<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" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.example.fahadsaleem.xyz.MainActivity">



<GridLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:id="@+id/gridLayout">

    <TextView
        android:layout_width="80dp"
        android:layout_height="27dp"
        android:text="Thursday"
        android:id="@+id/textView5"
        android:layout_row="0"
        android:layout_column="5"
        android:layout_gravity="center|fill"
        android:gravity="center" />

    <TextView
        android:layout_width="120dp"
        android:layout_height="27dp"
        android:text="Time"
        android:id="@+id/textView"
        android:layout_row="0"
        android:layout_column="0"
        android:textAlignment="center"
        android:layout_gravity="center|fill"
        android:gravity="center" />

    <TextView
        android:layout_width="80dp"
        android:layout_height="27dp"
        android:text="Friday"
        android:id="@+id/textView6"
        android:layout_row="0"
        android:layout_column="6"
        android:layout_gravity="center"
        android:gravity="center" />

    <TextView
        android:layout_width="120dp"
        android:layout_height="27dp"
        android:text="900-950"
        android:id="@+id/textView7"
        android:layout_row="1"
        android:layout_column="0"
        android:textAlignment="center"
        android:layout_gravity="center|fill"
        android:gravity="center"
        android:background="#daf8a6" />

    <TextView
        android:layout_width="80dp"
        android:layout_height="27dp"
        android:text="Monday"
        android:id="@+id/textView2"
        android:layout_row="0"
        android:layout_column="1"

        android:textAlignment="center"
        android:layout_gravity="center|fill"
        android:gravity="center" />

    <TextView
        android:layout_width="80dp"
        android:layout_height="27dp"
        android:text="Tuesday"
        android:id="@+id/textView3"
        android:layout_row="0"
        android:layout_column="2"
        android:gravity="center"
        android:layout_gravity="center" />

    <TextView
        android:layout_width="100dp"
        android:layout_height="27dp"
        android:text="Wednesday"
        android:id="@+id/textView4"
        android:layout_row="0"
        android:layout_column="3"
        android:layout_gravity="center|fill"
        android:gravity="center"/>

    <TextView
        android:layout_width="80dp"
        android:layout_height="27dp"
        android:text="Calculus"
        android:id="@+id/monday_calc"
        android:layout_row="1"
        android:layout_column="1"
        android:textAlignment="center"
        android:layout_gravity="center|fill"
        android:gravity="center"
        android:clickable="true"
        android:background="#dbfbb8" />

    <TextView
        android:layout_width="80dp"
        android:layout_height="50dp"
        android:text="Programming"
        android:id="@+id/Tuesday_Prog"
        android:layout_row="1"
        android:layout_column="2"
        android:layout_rowSpan="2"
        android:layout_gravity="center|fill"
        android:gravity="center"
        android:textSize="13dp" />

    <TextView
        android:layout_width="100dp"
        android:layout_height="27dp"
        android:text="Library"
        android:id="@+id/textView25"
        android:layout_row="1"
        android:layout_column="3"
        android:layout_gravity="center|fill"
        android:gravity="center" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Islamiat"
        android:id="@+id/Thursday_Islamiat"
        android:layout_row="1"
        android:layout_column="5"
        android:layout_gravity="center|fill"
        android:gravity="center" />

    <TextView
        android:layout_width="80dp"
        android:layout_height="27dp"
        android:text="Library"
        android:id="@+id/poqwe"
        android:layout_row="1"
        android:layout_column="6"
        android:layout_gravity="center"
        android:gravity="center" />

    <TextView
        android:layout_width="120dp"
        android:layout_height="27dp"
        android:text="1000-1050"
        android:id="@+id/textView8"
        android:layout_row="2"
        android:layout_column="0"
        android:textAlignment="center"
        android:layout_gravity="center|fill"
        android:gravity="center"
        android:background="#e0fcbb" />

    <TextView
        android:layout_width="80dp"
        android:layout_height="75dp"
        android:text="ICT Lab"
        android:id="@+id/Monday_ICT"
        android:layout_row="2"
        android:layout_column="1"
        android:layout_rowSpan="3"
        android:textAlignment="center"
        android:layout_gravity="center|fill"
        android:gravity="center" />

    <TextView
        android:layout_width="100dp"
        android:layout_height="27dp"
        android:text="Calculus"
        android:id="@+id/Wed_calc"
        android:layout_row="2"
        android:layout_column="3"
        android:gravity="center"
        android:layout_gravity="bottom" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Calculus"
        android:id="@+id/Thursday_calc"
        android:layout_row="2"
        android:layout_column="5"
        android:layout_gravity="center|fill"
        android:gravity="center" />

    <TextView
        android:layout_width="80dp"
        android:layout_height="27dp"
        android:text="Islamiat"
        android:id="@+id/fri_islamiat"
        android:layout_row="2"
        android:layout_column="6"
        android:layout_gravity="center"
        android:gravity="center" />

    <TextView
        android:layout_width="120dp"
        android:layout_height="27dp"
        android:text="1100-1150"
        android:id="@+id/textView9"
        android:layout_row="3"
        android:layout_column="0"
        android:textAlignment="center"
        android:layout_gravity="center|fill"
        android:gravity="center"
        android:background="#daf8a6" />

    <TextView
        android:layout_width="80dp"
        android:layout_height="27dp"
        android:text="Library"
        android:id="@+id/textView21"
        android:layout_row="3"
        android:layout_column="2"
        android:gravity="center"
        android:layout_gravity="bottom" />

    <TextView
        android:layout_width="100dp"
        android:layout_height="27dp"
        android:text="Tutorial"
        android:id="@+id/textView27"
        android:layout_row="3"
        android:layout_column="3"
        android:layout_gravity="left|bottom"
        android:gravity="center" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="DM"
        android:id="@+id/Thursday_DM"
        android:layout_row="3"
        android:layout_column="5"
        android:layout_gravity="center|fill"
        android:gravity="center" />

    <TextView
        android:layout_width="80dp"
        android:layout_height="27dp"
        android:text="Comm. Skills"
        android:id="@+id/fri_comm"
        android:layout_row="3"
        android:layout_column="6"
        android:layout_gravity="center"
        android:gravity="center"
        android:textSize="13dp" />

    <TextView
        android:layout_width="120dp"
        android:layout_height="27dp"
        android:text="1200-1250"
        android:id="@+id/textView10"
        android:layout_row="4"
        android:layout_column="0"
        android:textAlignment="center"
        android:layout_gravity="center|fill"
        android:gravity="center"
        android:background="#e0fcbb" />

    <TextView
        android:layout_width="80dp"
        android:layout_height="27dp"
        android:text="Comm. Skills"
        android:id="@+id/Tuesday_Comm"
        android:layout_row="4"
        android:layout_column="2"
        android:layout_gravity="center|fill"
        android:gravity="center"
        android:textSize="13dp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="DM"
        android:id="@+id/Wed_DM"
        android:layout_row="4"
        android:layout_column="3"
        android:layout_gravity="center|fill"
        android:gravity="center" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Tutorial"
        android:id="@+id/textView33"
        android:layout_row="4"
        android:layout_column="5"
        android:layout_gravity="center|fill"
        android:gravity="center" />

    <TextView
        android:layout_width="80dp"
        android:layout_height="27dp"
        android:text="Programming"
        android:id="@+id/fri_Prog"
        android:layout_row="4"
        android:layout_column="6"
        android:layout_gravity="center"
        android:gravity="center"
        android:textSize="13dp" />

    <TextView
        android:layout_width="120dp"
        android:layout_height="27dp"
        android:text="Lunch + Prayer Break"
        android:id="@+id/textView17"
        android:layout_row="5"
        android:layout_column="0"
        android:layout_gravity="center|fill"
        android:gravity="center"
        android:layout_columnSpan="7"
        android:background="#d9f2f1" />

    <TextView
        android:layout_width="120dp"
        android:layout_height="27dp"
        android:text="1400-1450"
        android:id="@+id/textView13"
        android:layout_row="6"
        android:layout_column="0"
        android:textAlignment="center"
        android:layout_gravity="center|fill"
        android:gravity="center"
        android:background="#daf8a6" />

    <TextView
        android:layout_width="80dp"
        android:layout_height="27dp"
        android:text="DM"
        android:id="@+id/Monday_DM"
        android:layout_row="6"
        android:layout_column="1"
        android:layout_gravity="center|fill"
        android:gravity="center" />

    <TextView
        android:layout_width="80dp"
        android:layout_height="50dp"
        android:text="ICT Lecture"
        android:id="@+id/Tuesday_ICT"
        android:layout_row="6"
        android:layout_column="2"
        android:layout_gravity="center|fill"
        android:gravity="center"
        android:layout_rowSpan="2" />

    <TextView
        android:layout_width="100dp"
        android:layout_height="75dp"
        android:text="Programming Lab"
        android:id="@+id/Wed_Prog"
        android:layout_row="6"
        android:layout_column="3"
        android:layout_rowSpan="3"
        android:layout_gravity="center|fill"
        android:gravity="center" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Library"
        android:id="@+id/textView34"
        android:layout_row="6"
        android:layout_column="5"
        android:layout_gravity="center|fill"
        android:gravity="center" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Library"
        android:id="@+id/textView41"
        android:layout_row="6"
        android:layout_column="6"
        android:layout_gravity="center|fill"
        android:gravity="center" />

    <TextView
        android:layout_width="120dp"
        android:layout_height="27dp"
        android:text="1500-1550"
        android:id="@+id/textView12"
        android:layout_row="7"
        android:layout_column="0"
        android:textAlignment="center"
        android:layout_gravity="center|fill"
        android:gravity="center"
        android:background="#e0fcbb" />

    <TextView
        android:layout_width="80dp"
        android:layout_height="27dp"
        android:text="Library"
        android:id="@+id/textView18"
        android:layout_row="7"
        android:layout_column="1"
        android:layout_gravity="center|fill"
        android:gravity="center" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Library"
        android:id="@+id/textView35"
        android:layout_row="7"
        android:layout_column="5"
        android:layout_gravity="center|fill"
        android:gravity="center" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Library"
        android:id="@+id/textView42"
        android:layout_row="7"
        android:layout_column="6"
        android:layout_gravity="center|fill"
        android:gravity="center" />

    <TextView
        android:layout_width="120dp"
        android:layout_height="27dp"
        android:text="1600-1650"
        android:id="@+id/textView14"
        android:layout_row="8"
        android:layout_column="0"
        android:textAlignment="center"
        android:layout_gravity="center|fill"
        android:gravity="center"
        android:background="#daf8a6" />

    <TextView
        android:layout_width="80dp"
        android:layout_height="27dp"
        android:text="Library"
        android:id="@+id/textView19"
        android:layout_row="8"
        android:layout_column="1"
        android:layout_gravity="center|fill"
        android:gravity="center" />

    <TextView
        android:layout_width="80dp"
        android:layout_height="27dp"
        android:text="Library"
        android:id="@+id/textView24"
        android:layout_row="8"
        android:layout_column="2"
        android:layout_gravity="center|fill"
        android:gravity="center" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Library"
        android:id="@+id/textView36"
        android:layout_row="8"
        android:layout_column="5"
        android:layout_gravity="center|fill"
        android:gravity="center" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Library"
        android:id="@+id/textView43"
        android:layout_row="8"
        android:layout_column="6"
        android:layout_gravity="center|fill"
        android:gravity="center" />

</GridLayout>

setting_dialog.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width= "400dp"
android:layout_height="140dp"
android:background="#3E80B4"
android:orientation="vertical" >

<TextView
    android:id="@+id/set_txt_dia"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Enter Subject Name: "
    android:textColor="@android:color/white"
    android:textSize="15dp"
    android:textStyle="bold"
    android:layout_above="@+id/set_textView44"
    android:layout_toRightOf="@+id/relativeLayout"
    android:layout_toEndOf="@+id/relativeLayout"
    android:layout_marginLeft="14dp" />


<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:background="#3E80B4"
    android:orientation="horizontal"
    android:id="@+id/relativeLayout">

</RelativeLayout>

<Button
    android:id="@+id/set_btnn"
    android:layout_width="83dp"
    android:layout_height="46dp"
    android:background="@android:color/white"
    android:clickable="true"
    android:text="Go Back"
    android:textColor="#5DBCD2"
    android:textStyle="bold"
    android:layout_marginRight="37dp"
    android:layout_marginEnd="37dp"
    android:layout_alignTop="@+id/set_Subject_ID"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_marginTop="25dp" />

<TextView
    android:id="@+id/set_textView15"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Enter Time Period: "
    android:textColor="@android:color/white"
    android:textSize="15dp"
    android:textStyle="bold"
    android:layout_centerVertical="true"
    android:layout_alignLeft="@+id/set_textView44"
    android:layout_alignStart="@+id/set_textView44" />

<TextView
    android:id="@+id/set_textView44"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Enter Location: "
    android:textColor="@android:color/white"
    android:textSize="15dp"
    android:textStyle="bold"
    android:layout_above="@+id/set_textView15"
    android:layout_alignLeft="@+id/set_txt_dia"
    android:layout_alignStart="@+id/set_txt_dia" />

<EditText
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:id="@+id/set_Subject_ID"
    android:textSize="16dp"
    android:layout_marginBottom="0dp"
    android:layout_marginLeft="152dp"
    android:layout_marginTop="5dp" />

<EditText
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:id="@+id/set_Time_ID"
    android:textColor="#ffffff"
    android:textSize="16dp"

    android:layout_marginLeft="139dp"
    android:layout_marginTop="44dp" />

<EditText
    android:layout_width="70dp"
    android:layout_height="wrap_content"
    android:id="@+id/set_Room_ID"
    android:textSize="16dp"
    android:textColor="#ffffff"
    android:layout_marginLeft="114dp"
    android:layout_marginTop="24dp" />

我没有发布整个java主要活动,我只发布了相关的内容。

2 个答案:

答案 0 :(得分:1)

我没有注意到你正在使用任何数据库。我在你的应用程序中看到你需要在类之间共享数据,因此必须使用SharedPreferences标准数据库:

请读这个:

How to use SharedPreferences in Android to store, fetch and edit values

您尝试获取一个临时的字符串值,仅适用于特定类。那是你的问题。上面的解决方案。

希望有所帮助

答案 1 :(得分:0)

在onClick中,您正在创建一个新实例,而您似乎并没有做任何事情。

如果你在kj课堂上有类似的东西:

public MainActivity c;

...

public kj(MainActivity a){

然后在“case R.id.set_btnn”下的onClick(View v):

c.str = set_monday_calc.getText()。toString();

您将设法更新str。