首页 > 解决方案 > Java Array 列表在按钮内时不会更新

问题描述

我是 Java 新手(和 stackoverflow ......),所以这可能很明显,但是当我搜索它时找不到类似的东西(如果我错过了,请不要犹豫,将解决方案链接给我!)

我正在努力尝试在一个按钮内更新我的数组列表。当我在 onSensorChanged 中使用它时,它一直说“无法解析符号 fileEntry”(我曾经在按钮外部定义它,但当我单击启动按钮时它不会更新它),它还说“变量 fileEntry 从未使用过' 在按钮内。请参阅下面的代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    starting_button = (Button) findViewById(R.id.button_start);
    starting_button.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            ArrayList fileEntry = new ArrayList();

这就是我尝试使用它的地方:

@Override
public void onSensorChanged(SensorEvent sensorEvent) {

    fileEntry.add(sensorEvent.values[0] + "," + sensorEvent.values[1] + "," + sensorEvent.values[2] + "\r");
}

我想做的是每次单击开始按钮时都有一个新的 fileEntry(即清除它)。

我知道我的代码远非完美,提前抱歉!

标签: javabuttonarraylist

解决方案


您应该像这样在活动类中将 ArrayList 声明为属性,以便在不同的方法中使用它:

class MainActivity extends AppCompatActivity() {
    private ArrayList fileEntry;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        fileEntry = new ArrayList();

        starting_button = (Button) findViewById(R.id.button_start);
        starting_button.setOnClickListener(new View.OnClickListener() {
    }

    @Override
    public void onClick(View v) {
        // Do something with your fileEntry
    }

    @Override
    public void onSensorChanged(SensorEvent sensorEvent) {
        fileEntry.add(sensorEvent.values[0] + "," + sensorEvent.values[1] + "," + sensorEvent.values[2] + "\r");
    }    
}

您的属性的范围现在将仅限于您的类,而不仅仅是您的 onClick 方法。


推荐阅读