如何在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以外的任何其他视图