使用可绘制 ID 初始化数组时 Android 应用程序中出错



考虑:

package com.example.practicealpha;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends Activity implements OnClickListener {
    Button next,previous;
    ImageView image;
    Integer[] id;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        id[0] = R.drawable.aa;
        id[1] = R.drawable.bb;
        id[2] = R.drawable.cc;
        id[3] = R.drawable.dd;
        next=(Button)findViewById(R.id.buttonNext);
        previous=(Button)findViewById(R.id.buttonPrevious);
        image=(ImageView)findViewById(R.id.imageView1);
        // image.setImageDrawable(id[0]);
        // image.setImageResource(id[i]);
        /*
            next.setOnClickListener(new Button.OnClickListener(){
                public void onClick(View v)
                {
                    if (i<=3)
                    {
                        i++;
                        image.setImageResource(id[i]);
                        if(i==4)
                            next.setEnabled(false);
                    }
                }
            });
            previous.setOnClickListener(new Button.OnClickListener(){
                public void onClick(View v)
                {
                    if(i>=1)
                    {
                        i--;
                        image.setImageResource(id[i]);
                        if(i==0)
                            next.setEnabled(false);
                    }
                }
            });
       */
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
    }
}
id[0] = R.drawable.aa;

此行导致我的应用程序强制停止。如何解决此问题?

我正在尝试初始化带有图像 id 的整数数组,然后尝试浏览可绘制文件夹中列出的图像。

更改

Integer[] id;

int[] id;

您必须初始化大小的 id:

int[] id = new int[size];

不能直接使用 id 数组。先初始化它:

id[0] = R.drawable.aa;

相关内容

最新更新