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 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效