0

我现在正在执行一项任务,其中我必须将行数和图像作为输入,然后将图像划分为给定的编号。行数相等。

我觉得除了一个街区外,它几乎完成了。我必须intent在扩展BaseAdapter.

如何从非活动类接收意图?

我浏览和搜索了很多。所有人都只是打算并给出解决方案来传递来自非活动类的意图,而不是接收来自非活动类的意图。

谁能帮我?

4

2 回答 2

2

嗨,普拉蒂巴。

这在 Android 中是不可能的,但您可以做一件事:在扩展的类中定义扩展BaseAdapteras 子类的类,Activity以便您可以直接访问子类中的这些数据而无需通过意图

于 2012-09-26T04:33:12.853 回答
0

使用此代码将帮助您,将这些值声明为全局变量,您可以在任何地方获取这些值...

public class Animate extends Activity {

GridView gridView;
int img;

@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.gridview);

    Intent i = getIntent();
    img = i.getIntExtra("ImageViews", 0);       

    GridView gridview = (GridView) findViewById(R.id.gridView1);
    gridview.setNumColumns(3);
    gridview.setAdapter(new MyAdapter(this));
}

public class MyAdapter extends BaseAdapter {

    Animate anim = new Animate();
    private Context mContext;
    int fadeInDuration = 6000;
    int timeBetween = 5000;
    public MyAdapter(Context c) {
        mContext = c;
    }

    @Override
    public int getCount() {
        return img;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        View grid = convertView;
        if (convertView == null) {              
            LayoutInflater vi = (LayoutInflater) mContext .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            grid = vi.inflate(R.layout.animation, null);
        }

        final ImageView image = (ImageView) grid.findViewById(R.id.image);
        image.setImageResource(R.drawable.images);
        Animation fadeIn = new AlphaAnimation(0, 1);
        fadeIn.setDuration(fadeInDuration);
        image.startAnimation(fadeIn);
        fadeIn.setAnimationListener(new AnimationListener() {
            @Override
            public void onAnimationEnd(Animation animation) {
                animation.reset();
                Animation fadeIn = new AlphaAnimation(0.0f, 1.00f);
                fadeIn.setDuration(fadeInDuration);
                fadeIn.setStartOffset(5000);
            }

            @Override
            public void onAnimationRepeat(Animation animation) {
            }

            @Override
            public void onAnimationStart(Animation animation) {                 

            }
        });
        return grid;
    }

    @Override
    public Object getItem(int arg0) {
        return null;
    }

    @Override
    public long getItemId(int arg0) {
        return 0;
    }
}
}
于 2012-09-26T10:09:43.887 回答