Android 如何使用按钮更改文本视图
如果这个问题看起来很明显,我很抱歉,但我是一个初学者,我想弄清楚Android是如何工作的 我想做的是用两个按钮(1和2)编辑一个小的虚拟键盘 是否可以通过在onCreate()方法中使用setOnClickButton()更改一个Android 如何使用按钮更改文本视图,android,button,textview,Android,Button,Textview,如果这个问题看起来很明显,我很抱歉,但我是一个初学者,我想弄清楚Android是如何工作的 我想做的是用两个按钮(1和2)编辑一个小的虚拟键盘 是否可以通过在onCreate()方法中使用setOnClickButton()更改一个TextView,该视图应该显示用户键入的内容 我这样问是因为我在另一个stackoverflow主题中读到onCreate()方法一次性创建活动,并且不可能通过在onCreate()方法中引入代码来多次更新它 这是我的密码: public class MainAct
TextView
,该视图应该显示用户键入的内容
我这样问是因为我在另一个stackoverflow主题中读到onCreate()方法一次性创建活动,并且不可能通过在onCreate()方法中引入代码来多次更新它
这是我的密码:
public class MainActivity extends Activity {
Button button1;
Button button2;
public void arrayToString(ArrayList<String> toto, String tota){
for (String s : toto)
{
tota += s + " ";
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ArrayList<String> displayList = new ArrayList<String>();
final String displayString = "";
final TextView displayTextView = (TextView)findViewById(R.id.screen1);
Button button1 = (Button)findViewById(R.id.one);
Button button2 = (Button)findViewById(R.id.two);
button1.setOnClickListener( new OnClickListener(){
public void onClick(View v){
displayList.add("1");
arrayToString(displayList,displayString);
displayTextView.setText(displayString);
}
});
button2.setOnClickListener( new OnClickListener(){
public void onClick(View v){
displayList.add("2");
arrayToString(displayList,displayString);
displayTextView.setText(displayString);
}
});
}
}
公共类MainActivity扩展活动{
按钮1;
按钮2;
公共无效arrayToString(ArrayList ToToTo,String ToToTo){
for(字符串s:toto)
{
tota+=s+“”;
}
}
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
最终ArrayList displayList=新ArrayList();
最终字符串displayString=“”;
最终文本视图显示文本视图=(文本视图)findViewById(R.id.screen1);
Button button1=(按钮)findViewById(R.id.one);
Button button2=(按钮)findViewById(R.id.two);
button1.setOnClickListener(新的OnClickListener(){
公共void onClick(视图v){
显示列表。添加(“1”);
arrayToString(displayList,displayString);
displayTextView.setText(显示字符串);
}
});
button2.setOnClickListener(新的OnClickListener(){
公共void onClick(视图v){
显示列表。添加(“2”);
arrayToString(displayList,displayString);
displayTextView.setText(显示字符串);
}
});
}
}
再次感谢,您的代码没有问题。您定义了两个按钮,并为每个按钮设置OnClickListener。当您按下按钮时,代码将被执行。onClickListener中的代码与onCreate()的定义无关。顾名思义,onClickListener“侦听单击。因此,每次单击按钮时,都会执行onClick()中的代码。因此,每次按下按钮时,displayTextView.setText(displayString)都将运行。请尝试以下代码
public class MainActivity extends Activity {
Button button1;
Button button2;
public String arrayToString(ArrayList<String> toto){
String tota = "";
for (String s : toto)
{
tota += s + " ";
}
retrun tota;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ArrayList<String> displayList = new ArrayList<String>();
String displayString = "";
final TextView displayTextView = (TextView)findViewById(R.id.screen1);
button1 = (Button)findViewById(R.id.one);
button2 = (Button)findViewById(R.id.two);
button1.setOnClickListener( new OnClickListener(){
public void onClick(View v){
displayList.add("1");
displayString = arrayToString(displayList);
displayTextView.setText(displayString);
}
});
button2.setOnClickListener( new OnClickListener(){
public void onClick(View v){
displayList.add("2");
displayString = arrayToString(displayList);
displayTextView.setText(displayString);
}
});
}
}
公共类MainActivity扩展活动{
按钮1;
按钮2;
公共字符串arrayToString(ArrayList toto){
字符串tota=“”;
for(字符串s:toto)
{
tota+=s+“”;
}
雷特朗·托塔;
}
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
最终ArrayList displayList=新ArrayList();
字符串displayString=“”;
最终文本视图显示文本视图=(文本视图)findViewById(R.id.screen1);
button1=(按钮)findViewById(R.id.one);
button2=(按钮)findViewById(R.id.two);
button1.setOnClickListener(新的OnClickListener(){
公共void onClick(视图v){
显示列表。添加(“1”);
displayString=arrayToString(displayList);
displayTextView.setText(显示字符串);
}
});
button2.setOnClickListener(新的OnClickListener(){
公共void onClick(视图v){
显示列表。添加(“2”);
displayString=arrayToString(displayList);
displayTextView.setText(显示字符串);
}
});
}
}
这是可以做到的。你有什么错误吗?是的,有可能onClick
listener每次单击按钮时都会被调用。是的,实际上,当用户按下按钮时,我的按钮没有响应,我也不知道为什么……可能是activity_main.xml布局文件的问题。可能在按钮顶部有一些透明的布局。您是否在onClick中放置了一些日志?发布“activity_main.xml”的xml文件。textView的新文本是否会显示在正在运行的活动上,或者我是否需要通过再次使用onCreat()创建活动来“刷新”它?不,您不需要调用所有这些。您发布的代码将在每次单击时刷新。因此,无需“刷新”