在非活动类中接收意图

时间:2012-09-26 04:25:46

标签: android android-intent

我正在做一项任务,我必须将行数和图像作为输入,然后将图像分成给定的否。行数相等。

我觉得除了一个街区外几乎完成了。我必须接收从扩展intent的类中的主Activity类传递的图像BaseAdapter

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

我经常浏览和搜索。所有人只是打算并提供解决方案来传递非活动类的意图,但不接受来自非活动类的意图。

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

嗨Pratibha。

在Android中是不可能的,但是您可以做一件事:定义将BaseAdapter扩展为类的子类,该类扩展Activity以便您可以直接访问这些类子类内的数据,不经过意图

答案 1 :(得分: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;
    }
}
}