0

私は今、行数と画像を入力として取得し、画像を指定された数に分割する必要があるタスクを実行しています。行の均等に。

1ブロックを除いてほぼ完成した気がします。intentを拡張するクラスのメインのActivityクラスから渡された画像を受け取る必要がありBaseAdapterます。

非活動クラスからインテントを受け取る方法は??

たくさん閲覧して検索しました。すべては、非活動クラスからの意図を渡すが、非活動クラスからの意図を受け取らないようにするための解決策を意図し、提供するだけです。

誰か助けてもらえますか?

4

2 に答える 2

2

こんにちはプラティバ。

Androidでは不可能ですが、次の1つのことができます。拡張してBaseAdapterいるクラス内のサブクラスとして拡張しているクラスを定義し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 に答える