在textView中更改文本

时间:2015-07-25 15:19:55

标签: android

我试图通过在分配给按钮的函数中调用它来更改textview中的文本。但是它并不像我希望的那样工作。我想知道是否有人可以指出为什么它不起作用?

这是“MainActivity.java”文件

package com.nblsoft.myapplication;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;


public class MainActivity extends ActionBarActivity {

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

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

    String stri = new String("Hellow");
    public void game(View view) {

        TextView textv = (TextView) findViewById(R.id.textView2);
        textv.setText(stri);
    }
}

和“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" 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=".MainActivity">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="@string/Welcome"
            android:id="@+id/textView"
            android:gravity="center"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="@string/lower_text"
            android:id="@+id/textView2"
            android:layout_below="@+id/editText"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="34dp" />

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/editText"
            android:inputType="number"
            android:text="@string/guess"
            android:textSize="160dp"
            android:layout_centerVertical="true"
            android:layout_centerHorizontal="true"
            android:onClick="game"/>

        <Button
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="ok"
            android:id="@+id/button"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true" />
    </RelativeLayout>

3 个答案:

答案 0 :(得分:1)

在EditText中点击时,你想要调用game吗?你把android:onClick="game"放在EditText

如果在点击按钮时想要通话,则必须将android:onClick="game"添加到 activity_main.xml 文件中的按钮,例如

<Button
   style="?android:attr/buttonStyleSmall"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="ok"
   android:id="@+id/button"
   android:layout_alignParentBottom="true"
   android:layout_alignParentRight="true"
   android:layout_alignParentEnd="true"
   android:onClick="game" />

或者你可以在 MainActivity.java 中使用它而不是在xml文件中使用android:onClick="game"

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

    Button button=(Button) findViewById(R.id.button);

    button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            game(arg0);
        }
    });
}

- 从EditText删除android:onClick="game"

答案 1 :(得分:0)

        package com.nblsoft.myapplication;

        import android.support.v7.app.ActionBarActivity;
        import android.os.Bundle;
        import android.view.Menu;
        import android.view.MenuItem;
        import android.view.View;
        import android.widget.TextView;


        public class MainActivity extends ActionBarActivity {

            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
                TextView textv = (TextView) findViewById(R.id.textView2);    
                String stri = new String("Hellow");
                Button btn = (Button) findViewById(R.id.button);

                btn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                textv.setText(stri);
                         }
               });
           }

            @Override
            public boolean onCreateOptionsMenu(Menu menu) {
                // Inflate the menu; this adds items to the action bar if it is present.
                getMenuInflater().inflate(R.menu.menu_main, menu);
                return true;
            }

            @Override
            public boolean onOptionsItemSelected(MenuItem item) {
                // Handle action bar item clicks here. The action bar will
                // automatically handle clicks on the Home/Up button, so long
                // as you specify a parent activity in AndroidManifest.xml.
                int id = item.getItemId();

                //noinspection SimplifiableIfStatement
                if (id == R.id.action_settings) {
                    return true;
                }

                return super.onOptionsItemSelected(item);
            }


        }

这应该有效。顺便说一下。不要急于进入这样的机器人...你必须先学习一些关于它如何工作的事情才能玩它。试着查看文档和玩法所有的Android提供。它真的很有趣。它对我来说仍然是因为我必须学到很多,仍然。

答案 2 :(得分:0)

当您单击edittext&#34; editText&#34;时调用方法游戏(),这将更改textview。如果你想通过点击按钮&#34;按钮&#34;来改变textview的值,我认为你只需要将game()方法移动到Button字段:

 <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ok"
        android:id="@+id/button"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:onClick="game" />