Fahad Saleem
Fahad Saleem

Reputation: 423

storing value of EditText to a string variable is not working

My question is different from other questions previously asked on this site on the same topic. The answer as to how we can store text from EditText field to a string was given as

EditText input = (EditText) findViewById(R.id.inputId);
String str = input.getText().toString();

my question is a bit different.

my java main activity is:

    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;
                    }
                }


        );
}
}

The kj class has the following code:

    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();

    }
}

Basically the app's interface has a time table of subjects. When you click on a subject name, a dialog box appears showing 3 things: Subject name, room number and time period.

Now what I want is I should be able to change the 3 things by making a long click on the subject name. I am trying to use this button in class kj to achieve that:

            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();

this variable str is declared in MainActivity java file. When the user enters the text on the subject name and clicks on this button, the text should be stored in the str variable.

But this is not happening. When I start writing any text on the EditText field on my interface which looks like this:

enter image description here

The following error is seen in the log:

enter image description here

then when I click Go Back button which should set the text I wrote to variable str, the following error is seen in the log:

enter image description here

Later on when I single click on the subject, what I wrote before I clicked on the button is not being showed, rather a blank space is being shown as was declared by this line in mainactivity java file:

public String str;

Like this:

enter image description here

What is the problem? Here are the rest of the files:

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" />

I did not post the whole of java main activity, I only posted that which is relevant.

Upvotes: 1

Views: 797

Answers (2)

Nicolae Natea
Nicolae Natea

Reputation: 1194

In onClick you are creating a new instance with which you don't really seem to be doing anything.

If you were to have in you kj class something like:

public MainActivity c;

...

public kj(MainActivity a) {

and then in onClick(View v) under "case R.id.set_btnn":

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

you would manage to update str.

Upvotes: 0

piotrek1543
piotrek1543

Reputation: 19361

I haven't noticed you're using any database. I see that in your app you need to share data between classes, so MUST HAVE is to use SharedPreferences standard database:

Read please this:

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

You tried to get a string value which was temporary and available only for specific class. That's your problem. Solution above.

Hope it help

Upvotes: 1

Related Questions