使用setText()设置时TextView为空白

时间:2016-04-09 14:43:22

标签: android textview

Textviewtt)未显示setText()设置的文字。我无法在TextView中看到输出。我尝试过使用ToastsetText(),但在这两种情况下我都会输出空白。为什么我得到这个空白输出?

package com.divik.ds;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener  {
EditText ed1,ed2,ed3;
String x,y,z,xx;
TextView tt;
Button btn;

protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);
     ed1=(EditText) findViewById(R.id.editText1);
     ed2=(EditText) findViewById(R.id.editText2);
     ed3=(EditText) findViewById(R.id.editText3);
     tt= (TextView) findViewById(R.id.textView4);
     btn=(Button)   findViewById(R.id.button1);
   try{
   x=(ed1.getText().toString());
   y=(ed2.getText().toString());
   z=(ed3.getText().toString());
   xx=x+""+y+""+z;
    btn.setOnClickListener(this);
   }
   catch(Exception e)
   {
       e.printStackTrace();
   }

 }
@Override
public void onClick(View v) {

        try{
     tt.setText(xx);
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }

Toast.makeText(this,xx,Toast.LENGTH_LONG).show();
}}

这是xml代码。我使用了3 EditText,4 TextView和1 Button

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Enter Date"
    android:textSize="30dp"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<EditText
    android:id="@+id/editText1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ems="10" >


</EditText>

 <TextView
    android:id="@+id/textView2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Enter month"
    android:textSize="30dp"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<EditText
    android:id="@+id/editText2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ems="10" >


</EditText>

 <TextView
    android:id="@+id/textView3"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Enter year"
    android:textSize="30dp"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<EditText
    android:id="@+id/editText3"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ems="10" >


    </EditText>

<TextView
    android:id="@+id/textView4"
    android:layout_width="match_parent"
    android:layout_height="40dp"

    android:textSize="30dp" />


<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button" />
   </LinearLayout>

2 个答案:

答案 0 :(得分:3)

onCreate()

位于ActivityonClick()首次启动时,它们将为空。

您可以将这些行放在@Override public void onClick(View v) { try{ x= ed1.getText().toString(); y= ed2.getText().toString(); z= ed3.getText().toString(); xx=x+""+y+""+z; tt.setText(xx); } catch(Exception e) { e.printStackTrace(); } Toast.makeText(this,xx,Toast.LENGTH_LONG).show(); }}

中来修复它
{{1}}

答案 1 :(得分:0)

请改用此代码: -

package com.divik.ds;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener  {
EditText ed1,ed2,ed3;
String x,y,z,xx;
TextView tt;
Button btn;

protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);
     ed1=(EditText) findViewById(R.id.editText1);
     ed2=(EditText) findViewById(R.id.editText2);
     ed3=(EditText) findViewById(R.id.editText3);
     tt= (TextView) findViewById(R.id.textView4);
     btn=(Button)   findViewById(R.id.button1);
     btn.setOnClickListener(this);

 }
@Override
public void onClick(View v) {

try{
   x=(ed1.getText().toString());
   y=(ed2.getText().toString());
   z=(ed3.getText().toString());
   xx=x+""+y+""+z;
   tt.setText(xx);

   }
   catch(Exception e)
   {
       e.printStackTrace();
   }



Toast.makeText(this,xx,Toast.LENGTH_LONG).show();
}}