Button 代码会在Android emulator中抛出错误,但不会在Eclipse中抛出错误。text单击按钮时查看更改
我是一名新的Android应用程序开发人员,我想要一个通过单击按钮来更改textview小部件的应用程序。Eclipse不会抛出错误,但Android仿真器会抛出错误 这是我的密码:Button 代码会在Android emulator中抛出错误,但不会在Eclipse中抛出错误。text单击按钮时查看更改,button,android-emulator,textview,runtime-error,imagebutton,Button,Android Emulator,Textview,Runtime Error,Imagebutton,我是一名新的Android应用程序开发人员,我想要一个通过单击按钮来更改textview小部件的应用程序。Eclipse不会抛出错误,但Android仿真器会抛出错误 这是我的密码: import android.os.Bundle; import android.app.Activity; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageButton;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.TextView;
public class MainActivity extends Activity {
int stringIdList[] = { R.string.text1, R.string.text2, R.string.text3,
R.string.text4 };
int stringListCounter = 0;
TextView text122;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageButton next = (ImageButton) findViewById(R.id.Next);
ImageButton previous = (ImageButton) findViewById(R.id.Previous);
text122 = (TextView) findViewById(R.id.Text00);
next.setOnClickListener((OnClickListener) this);
previous.setOnClickListener((OnClickListener) this);
}
public void onClick(View v) {
int id = v.getId();
if (id == R.id.Next && stringListCounter < stringIdList.length - 1) {
stringListCounter++;
} else if (id == R.id.Previous && stringListCounter > 0) {
stringListCounter--;
}
text122.setText(stringIdList[stringListCounter]);
}
错误就在这里
next.setOnClickListener((OnClickListener) this);
previous.setOnClickListener((OnClickListener) this);
我不知道你为什么要这样设置你的onClick听众,因为我也不是那么熟练
我是这样学的
package com.example.test;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.TextView;
public class MainActivity extends Activity {
int stringIdList[] = { 111, 222, 333, 444};
int stringListCounter = 0;
TextView text122;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setWidgets();
setOnClickListeners();
}
private void setWidgets(){
text122 = (TextView) findViewById(R.id.Text00);
}
private void setOnClickListeners(){
text122.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if(stringListCounter == 4){
stringListCounter =0;
text122.setText(" " + stringIdList[stringListCounter]);
stringListCounter ++;
setOnClickListeners();
}
else
{
text122.setText(" " + stringIdList[stringListCounter]);
stringListCounter++;
setOnClickListeners();
}
}
});
}
}
很明显我没有做你想做的事。当您按下文本视图时,文本将发生变化,它将重置onClickListener以准备下一次按下。逻辑很糟糕,但您知道如何设置onClick侦听器
另外,我不知道为什么您的stringIdList是Int。它不是一个字符串列表吗?设置文本视图的文本时肯定会出现问题,因为您正在发送int。请编辑以包含错误消息。我从logcat添加了一些内容,我不知道这是否足够??它何时崩溃?启动时?感谢fukkireta,您的代码正在运行,对不起,我是初学者,我希望应用程序单击按钮(下一步,上一步)和textview更改,并且不包含我想要文本的整数…我自己也刚刚进入安卓系统,但老实说,我的onclick甚至与这里介绍的任何方法都不同。在XML文件中,可以为按钮设置的属性之一是onClick。因此,对于XML中的按钮,您可以添加:
android:onClick=“nameForYourOnClick”
在代码中需要做的就是编写这样一个方法:public void nameForYourOnClick(View v){//do stuff}
next.setOnClickListener((OnClickListener) this);
previous.setOnClickListener((OnClickListener) this);
package com.example.test;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.TextView;
public class MainActivity extends Activity {
int stringIdList[] = { 111, 222, 333, 444};
int stringListCounter = 0;
TextView text122;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setWidgets();
setOnClickListeners();
}
private void setWidgets(){
text122 = (TextView) findViewById(R.id.Text00);
}
private void setOnClickListeners(){
text122.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if(stringListCounter == 4){
stringListCounter =0;
text122.setText(" " + stringIdList[stringListCounter]);
stringListCounter ++;
setOnClickListeners();
}
else
{
text122.setText(" " + stringIdList[stringListCounter]);
stringListCounter++;
setOnClickListeners();
}
}
});
}
}