2011-08-05 72 views
0

我的程序如下:想從主類訪問變量對其他類...

public class HelloGridViewActivity extends Activity { 

    public int pos; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     GridView gridview = (GridView) findViewById(R.id.gridview); 
     gridview.setAdapter(new ImageAdapter(this)); 

     gridview.setOnItemClickListener(new OnItemClickListener() { 

      public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
       pos = position; 
       Toast.makeText(HelloGridViewActivity.this, "" + pos, Toast.LENGTH_SHORT).show(); 
       Intent secondActivity = new Intent(getBaseContext(), seconactivity.class); 
       startActivity(secondActivity); 
      } 
     }); 
    } 
} 

這是我的主類文件和我的其他的java文件是遵循

public class seconactivity extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     HelloGridViewActivity position1 = new HelloGridViewActivity(); 
     int p = position1.pos; 
     if (p == 0) { 
      setContentView(R.layout.ashtavinayak); 
     } else { 
      setContentView(R.layout.ayadhya); 
     } 
    } 
} 

NW我想訪問pos類變量在主類中定義的seconactivity類..can any1告訴我我怎麼做到這一點?

回答

4

最簡單的方法是將其傳遞的意圖,無論是作爲數據或作爲額外的(看Intent.setData()Intent.putExtra

在第二個活動,你可以打電話getIntent(),然後讀取其數據和臨時演員。

+0

thnks ayublin..but我得到了更多的1路 只是在主類 一個變量聲明爲 公共靜態INT POS; 並在seconactivity類使用它作爲跟隨 int p = HelloGridViewActivity.pos; \t \t \t 如果(P == 0)\t \t {\t \t 的setContentView(R.layout.ashtavinayak); \t \t } \t \t 別的\t \t {\t \t 的setContentView(R.layout.ayadhya); \t \t } } –

+0

@Parth Dani我也更喜歡你的方式,但它在大型項目中風險很大。 :) Wot EboMike說應該是最好的做法 –