如何使用java制作全局arraylist,获取错误“;无法解析符号“;
我还是一个初学者,试图在android studio中使用java制作一个简单的应用程序来调用宾果数字。我很难在接到电话后删除号码。我试图使数组列表公开并可供我的button方法访问,但我得到了“无法解析符号‘ball’”。我曾尝试将数组列表放在如何使用java制作全局arraylist,获取错误“;无法解析符号“;,java,android-studio,arraylist,Java,Android Studio,Arraylist,我还是一个初学者,试图在android studio中使用java制作一个简单的应用程序来调用宾果数字。我很难在接到电话后删除号码。我试图使数组列表公开并可供我的button方法访问,但我得到了“无法解析符号‘ball’”。我曾尝试将数组列表放在onCreate()下面,但后来有人告诉我需要声明ball final。如果我这样做,以后就无法从数组列表中删除。我尝试了很多不同的东西,但我似乎无法得到它,任何建议都是感激的 类MainActivity扩展了AppCompatActivity{ pub
onCreate()
下面,但后来有人告诉我需要声明ball final。如果我这样做,以后就无法从数组列表中删除。我尝试了很多不同的东西,但我似乎无法得到它,任何建议都是感激的
类MainActivity扩展了AppCompatActivity{
public static void main (String[] args)
{
ArrayList<String> ball = new ArrayList<String>();
ball.add("B1");
ball.add("B2");
ball.add("B3");
ball.add("B4");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Random r = new Random();
String call = ball.get(r.nextInt(ball.size()));
TextView text = (TextView) findViewById(R.id.result);
text.setText(call);
ball.remove(r);
}
});
}
}
publicstaticvoidmain(字符串[]args)
{
ArrayList ball=新的ArrayList();
添加“B1”);
添加(“B2”);
添加(“B3”);
添加(“B4”);
}
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button Button=(Button)findViewById(R.id.Button);
setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
随机r=新随机();
字符串调用=ball.get(r.nextInt(ball.size());
TextView text=(TextView)findViewById(R.id.result);
text.setText(调用);
球。移除(r);
}
});
}
}
一般来说,在android studio中,不需要所谓的“main”函数,这在其他java程序中被广泛使用,因为默认情况下,它没有相同的用法。然而,onCreate()
方法可以被称为类似于main
的一般用法。下面的代码解决了您的问题:
public class MainActivity extends AppCompatActivity{
private ArrayList<String> ball;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
ball = new ArrayList<String>();
ball.add("B1");
ball.add("B2");
ball.add("B3");
ball.add("B4");
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Random r = new Random();
String call = ball.get(r.nextInt(ball.size()));
TextView text = (TextView) findViewById(R.id.result);
text.setText(call);
ball.remove(r);
}
});
}
public类MainActivity扩展了AppCompatActivity{
私人ArrayList ball;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
ball=新的ArrayList();
添加“B1”);
添加(“B2”);
添加(“B3”);
添加(“B4”);
setContentView(R.layout.activity_main);
Button Button=(Button)findViewById(R.id.Button);
setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
随机r=新随机();
字符串调用=ball.get(r.nextInt(ball.size());
TextView text=(TextView)findViewById(R.id.result);
text.setText(调用);
球。移除(r);
}
});
}
}
我强烈建议您再次学习android的基础知识,最好从开始
希望我能帮忙,您的
onClick
不必包含所有代码。您可以让它在维护bingo状态的对象上调用一个方法。例如,可以在onCreate
中创建和初始化对象。有很多方法可以做到这一点,但是早期模块化代码和重构通常是推荐的,即使是对于一些琐碎的程序也是如此。Public!=全球的。Java中没有全局a。