Hiroyuan 2023-03-11 16:49 采纳率: 100%
浏览 10
已结题

关于#Main#的问题,如何解决?

'com.example.radiobutton.MainActivity' 不是封闭类

import androidx.appcompat.app.AppCompatActivity;

public class gallery extends AppCompatActivity
{

    private ImageSwitcher imageSwitcher;
    Gallery gallery;
    private  int[] imgs ={
            R.drawable.a,
            R.drawable.b,
            R.drawable.c,
            R.drawable.d,
            R.drawable.e,
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_gallery);
        imageSwitcher = findViewById(R.id.imageSwithcer01);
        imageSwitcher.setFactory(new viewFactory());
        imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_in));
        imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_out));
        imageSwitcher.setImageResource(R.drawable.a);
        gallery = findViewById(R.id.Gallery01);
        gallery.setOnItemSelectedListener(new onItemSelectedListener());
        gallery.setSpacing(10);
        gallery.setAdapter(new baseAdapter());
    }
    class viewFactory implements ViewSwitcher.ViewFactory {
        @Override
        public View makeView()
        {
            ImageView imageView = new ImageView(**MainActivity.this**);
            imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
            return imageView;
        }

    }
    class onItemSelectedListener implements AdapterView.OnItemSelectedListener{
        @Override
        public void onItemSelected(AdapterView<?> parent,View view,int position,long id){
            imageSwitcher.setImageResource((int) gallery.getItemIdAtPosition(position));
        }
        @Override
        public void onNothingSelected(AdapterView<?> arg0){}
    }
    class baseAdapter extends BaseAdapter
    {
        public int getCount()
        {
            return imgs.length;
        }
        public Object getItem(int position)
        {
            return null;
        }
        public long getItemId(int position)
        {
            return imgs[position];
        }
        public View getView(int position, View converView, ViewGroup parent){
            ImageView imageView = new ImageView(**MainActivity.this**);
            imageView.setImageResource(imgs[position]);
            imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
            imageView.setLayoutParams(new Gallery.LayoutParams(60,60));
            return imageView;
        }

    }
}



加粗代码处就是问题出现位置,我的java基础不是很牢,求救助
问题出在第33,62行

  • 写回答

3条回答 默认 最新

  • MarkHan_ 2023-03-11 17:07
    关注

    该回答引用GPTᴼᴾᴱᴺᴬᴵ
    问题出在代码中使用了错误的类名来引用MainActivity.this。因为你的Activity名称是“gallery”,而不是“MainActivity”,所以在第33和62行中应该使用“gallery.this”来引用当前Activity的实例,而不是“MainActivity.this”。

    因此,你应该将第33行和第62行中的代码从:

    ImageView imageView = new ImageView(MainActivity.this);
    
    
    

    修改为:

    ImageView imageView = new ImageView(gallery.this);
    
    
    

    这样就可以正确地引用当前Activity的实例,解决该问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月19日
  • 已采纳回答 3月11日
  • 修改了问题 3月11日
  • 创建了问题 3月11日

悬赏问题

  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系