2012-09-26 40 views
0

我正在執行一個任務,在該任務中,我必須將行數和圖像作爲輸入,然後將圖像分成給定的編號。同樣的行。在非活動類中接收意圖

我覺得它幾乎完成,除了一個街區。我必須收到intent的圖片,這些圖片從擴展了BaseAdapter的類中的主Activity類傳遞過來。

如何接收來自非活動類的意圖?

我瀏覽和搜索了很多。所有隻是打算並給出解決方案來傳遞非活動類的意圖,但不接受非活動類的意圖。

任何人都可以幫助我嗎?

+0

你想從活動數據傳遞到適配器類。 –

+0

是的..但我的Adapter類是擴展Activity類的MainActivity的內部類。我如何訪問它們。我創建了對象,甚至嘗試了從上下文和這個引用。但它沒有解決。你能幫我麼?? – Priety

+0

你得到了這個問題的答案... –

回答

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; 
    } 
} 
} 
2

嗨Pratibha。

在Android中是不可能的,但你可以做一件事:定義擴展BaseAdapter作爲擴展Activity的類中的子類的類,這樣你就可以直接訪問子類中的數據而不需要傳遞通過意向

+0

我擴展BaseAdapter類的類是主類擴展活動的內部類。現在我只需要從MainActivity類中接收的ImageAdapter類訪問意圖。你能幫我麼??請 – Priety

+0

你能告訴我ImageAdapter類的實際位置..? –

+0

你可以做一件事在Activity類中創建一個全局對象,然後通過Intent在外部類中分配你獲得的數據,並且你可以在內部類中使用同一個對象確保在使用它之前檢查它是否爲NULL ness –