Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android中使用一个EditText设置多个文本视图的文本?_Android_Textview - Fatal编程技术网

如何在Android中使用一个EditText设置多个文本视图的文本?

如何在Android中使用一个EditText设置多个文本视图的文本?,android,textview,Android,Textview,我有四个TextView项目,所有项目都可以点击。我还有一个EditText项和一个“Go”按钮。用户输入到EditText字段的文本必须用于设置单击的TextView项目的文本 因此,如果我单击TextView项目编号2,然后在EditText框中输入一些文本,然后点击“Go”按钮,则输入的文本必须仅写入TextView项目编号2,其他3个TextView项目应保持不变。 我如何做到这一点?在“Go”按钮的onClick方法中,如何找出单击了哪个TextView?这里有一个解决方案。创建四个非

我有四个
TextView
项目,所有项目都可以点击。我还有一个
EditText
项和一个“Go”按钮。用户输入到
EditText
字段的文本必须用于设置单击的
TextView
项目的文本

因此,如果我单击
TextView
项目编号2,然后在
EditText
框中输入一些文本,然后点击“Go”按钮,则输入的文本必须仅写入
TextView
项目编号2,其他3个
TextView
项目应保持不变。
我如何做到这一点?在“Go”按钮的onClick方法中,如何找出单击了哪个
TextView

这里有一个解决方案。创建四个非局部变量(比如int),每个textview一个,并将其初始化为零。单击textview时,在该textview的onclick事件中将相应变量设置为非零值

最后,当您键入edittext并单击go时,检查哪个textview变量是非零的,并相应地更改该textview(在go的onClick事件中)。还请记住将textview变量设置回零,以便逻辑在将来的输入中起作用


编辑:您还可以通过使用单个变量简化此方法,并在此处存储1,2,3,4等。但是,我建议的方法的优点是,即使您希望在单击go时设置多个文本视图(而不是所有文本视图)的文本,它也可以工作。

这里有一个解决方案。创建四个非局部变量(比如int),每个textview一个,并将其初始化为零。单击textview时,在该textview的onclick事件中将相应变量设置为非零值

最后,当您键入edittext并单击go时,检查哪个textview变量是非零的,并相应地更改该textview(在go的onClick事件中)。还请记住将textview变量设置回零,以便逻辑在将来的输入中起作用


编辑:您还可以通过使用单个变量简化此方法,并在此处存储1,2,3,4等。但我建议的方法的优点是,即使在单击go时要设置多个但不是所有textview的文本,它也可以工作。

我认为需要声明一个整数来跟踪单击的textview,然后在单击按钮的onclicklistener中检查该整数值并根据该值设置单击的特定textview的文本。我刚刚创建了演示代码,它为您提供了足够的想法,让您了解路径:)

解决方案:--
我认为您需要声明一个整数来跟踪单击的textview,然后在按钮的onclicklistener中检查该整数值,并根据该值设置单击的特定textview的文本。我刚刚创建了演示代码,该代码提供了足够的想法,让您能够进入路径:)

解决方案:--
在类中创建一个int变量

为所有文本视图设置onclick listener,并将id设置为变量,然后在按钮单击中使用它

这里我举了一个我试过的例子

public class MainActivity extends Activity implements OnClickListener {

TextView t1, t2, t3;
EditText e1;
Button b1;
private static int ids = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    t1 = (TextView) findViewById(R.id.textView1);
    t2 = (TextView) findViewById(R.id.textView2);
    t3 = (TextView) findViewById(R.id.textView3);
    e1 = (EditText) findViewById(R.id.one);
    b1 = (Button) findViewById(R.id.enter);
    t1.setOnClickListener(this);
    t2.setOnClickListener(this);
    t3.setOnClickListener(this);

    b1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            if (ids != 0) {
                TextView tx = (TextView) findViewById(ids);
                tx.setText(e1.getText().toString());
            }
        }
    });
}

@Override
public void onClick(View v) {
    switch (v.getId()) {
    case R.id.textView1:
    case R.id.textView2:
    case R.id.textView3:
        ids = v.getId();
        break;
    }
}

}

在类中创建一个int变量

为所有文本视图设置onclick listener,并将id设置为变量,然后在按钮单击中使用它

这里我举了一个我试过的例子

public class MainActivity extends Activity implements OnClickListener {

TextView t1, t2, t3;
EditText e1;
Button b1;
private static int ids = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    t1 = (TextView) findViewById(R.id.textView1);
    t2 = (TextView) findViewById(R.id.textView2);
    t3 = (TextView) findViewById(R.id.textView3);
    e1 = (EditText) findViewById(R.id.one);
    b1 = (Button) findViewById(R.id.enter);
    t1.setOnClickListener(this);
    t2.setOnClickListener(this);
    t3.setOnClickListener(this);

    b1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            if (ids != 0) {
                TextView tx = (TextView) findViewById(ids);
                tx.setText(e1.getText().toString());
            }
        }
    });
}

@Override
public void onClick(View v) {
    switch (v.getId()) {
    case R.id.textView1:
    case R.id.textView2:
    case R.id.textView3:
        ids = v.getId();
        break;
    }
}

}

假设您有以下四个文本视图:

TextView1
TextView2
TextView3
TextView4
在xml本身中指定这些文本视图的
onClick()
属性,其值为,例如,
selectedTextView
,如下所示:

<TextView
...
android:onClick="selectedTextView"
/>
然后,在名为

public void selectedTextView(View view)
{
    mTextView = (TextView) view;
}
在单击按钮“Go”“Go”的内部,只需使用以下命令设置文本:

mTextView.setText("Your value inside EditText goes here");

假设您有以下四个文本视图:

TextView1
TextView2
TextView3
TextView4
在xml本身中指定这些文本视图的
onClick()
属性,其值为,例如,
selectedTextView
,如下所示:

<TextView
...
android:onClick="selectedTextView"
/>
然后,在名为

public void selectedTextView(View view)
{
    mTextView = (TextView) view;
}
在单击按钮“Go”“Go”的内部,只需使用以下命令设置文本:

mTextView.setText("Your value inside EditText goes here");

在活动类中查找每个
Textview
,如:

    TextView tv_1=(TextView)findViewById(R.id.tv_1);
    TextView tv_2=(TextView)findViewById(R.id.tv_2);
    TextView tv_3=(TextView)findViewById(R.id.tv_3);
    TextView tv_4=(TextView)findViewById(R.id.tv_4);
使用onclick函数从第二个Textview获取值

String value=tv_2.getText().tostring(); 

在活动类中查找每个
Textview
,如:

    TextView tv_1=(TextView)findViewById(R.id.tv_1);
    TextView tv_2=(TextView)findViewById(R.id.tv_2);
    TextView tv_3=(TextView)findViewById(R.id.tv_3);
    TextView tv_4=(TextView)findViewById(R.id.tv_4);
使用onclick函数从第二个Textview获取值

String value=tv_2.getText().tostring(); 

我不喜欢设置一个ID来知道要设置哪个textView。我们正在研究一种面向对象的语言,为什么要使用结构化数据呢。为什么不这样做呢

public class MainActivity extends Activity implements OnClickListener {

    TextView textView = null;
    EditText e1;
    Button b1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ((TextView) findViewById(R.id.textView1)).setOnClickListener(this);
        ((TextView) findViewById(R.id.textView2)).setOnClickListener(this);
        ((TextView) findViewById(R.id.textView3)).setOnClickListener(this);
        ((TextView) findViewById(R.id.textView4)).setOnClickListener(this);
        e1 = (EditText) findViewById(R.id.one);
        b1 = (Button) findViewById(R.id.enter);

        b1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                if (editText != null) {
                    editText.setText(e1.getText().toString());
                }
            }
        });
    }

    @Override
    public void onClick(View v) {
      editText = (TextView)v;
    }

}

我不喜欢设置一个ID来知道要设置哪个textView。我们正在研究一种面向对象的语言,为什么要使用结构化数据呢。为什么不这样做呢

public class MainActivity extends Activity implements OnClickListener {

    TextView textView = null;
    EditText e1;
    Button b1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ((TextView) findViewById(R.id.textView1)).setOnClickListener(this);
        ((TextView) findViewById(R.id.textView2)).setOnClickListener(this);
        ((TextView) findViewById(R.id.textView3)).setOnClickListener(this);
        ((TextView) findViewById(R.id.textView4)).setOnClickListener(this);
        e1 = (EditText) findViewById(R.id.one);
        b1 = (Button) findViewById(R.id.enter);

        b1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                if (editText != null) {
                    editText.setText(e1.getText().toString());
                }
            }
        });
    }

    @Override
    public void onClick(View v) {
      editText = (TextView)v;
    }

}

跟踪已单击的文本视图(假设您有0到3)。。当第二个文本视图被单击时存储1,然后当按下go时,使用开关盒并设置值。跟踪单击的文本视图,说您有0到3。。当第二个文本视图被单击存储1,然后按下go时,使用开关盒并设置值。android:onClick=“selectedTextView”仅当您使用的是一个活动时才有效除非该片段的onClick方法也存在于该片段所属的活动中,否则它不适用于片段,但这是错误的做法android:onClick=“selectedTextView”只有在您使用某个活动时,它才起作用除非该片段的onClick方法也存在于该片段所属的活动中,否则它不适用于片段,但这是一种糟糕的做法谢谢!但是你能告诉我为什么我们必须在onClick方法中使用开关吗?为什么不像LeMoN.xaH那样做呢?在那个地方你也可以使用它,但也有一些情况。如果存在除文本vie以外的任何其他视图