2012-04-27 52 views
0

您好我正在做一個應用程序here.user單擊按鈕一次意味着在另一個活動中我需要執行一個動作,用戶再次回到同一頁面agian單擊相同的按鈕意味着我需要執行不同的操作。我在活動1採取2個活動我有1個按鈕,我treid在activity1按鈕中使用一個計數變量按鈕單擊那次我遞增計數變量,使用putextra我將計數值轉換爲acticity2這裏根據計數我執行動作,但計數一次是隨着時間的推移,如果我回到相同的activty1然後我點擊按鈕,也計數是'1',只是,它不是2 .so如何解決這個問題任何有想法的人建議我。如何將一個類的透明變量值轉換爲另一個類android

Activity1 .class: 
public class Activity1 extends Activity implements OnClickListener{ 
Button b1,b2; 
    int countk4=0; 

    SharedPreferences share; 
    String bol3; 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.home1); 
    b1=(Button)findViewById(R.id.button1); 
    b1.setOnClickListener(this); 
    } 

public void onClick(View v) { 
    // TODO Auto-generated method stub 
    if(v==b1) 
    { 
     countk4++; 
     share=getSharedPreferences("shared", MODE_WORLD_WRITEABLE); 
     SharedPreferences.Editor editor=share.edit(); 

     editor.putInt("roll", countk4); 

     editor.commit(); 

     show(); 
     Intent i=new Intent(Activity1 .this,Activity2.class); 
     i.putExtra("k", 1); 
     i.putExtra("k1", 13); 
     i.putExtra("ks", val1); 
     startActivity(i); 
    } 
} 
Integer val1,val2; 
private void show() { 
    // TODO Auto-generated method stub 
    share=getSharedPreferences("shared", MODE_WORLD_READABLE); 

    val1=share.getInt("roll",0); 

    } 
     } 

    Activity2 .class: 
    public class Activity2 extends Activity implements OnClickListener{ 
Button back; 
     int countkv; 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.home2); 
    back=(Button)findViewById(R.id.button1); 
    back.setOnClickListener(this); 
      countkv = getIntent().getIntExtra("ks", 0); 

    if(countkv =1) 
    { 
    Toast.makeText(getApplicationContext(), "hai.......i am first", Toast.LENGTH_LONG).show(); 
    } 

if(countkv =2) 
{ 
    Toast.makeText(getApplicationContext(), "hai.......1 am second", Toast.LENGTH_LONG).show(); 
    } 

    public void onClick(View v) { 
    // TODO Auto-generated method stub 
    if(v==back) 
    { 
     Intent i=new Intent(Activity2.this,Activity1.class); 


     startActivity(i); 
    } 


} 
} 
} 
but above every time first toast message displayed becz countkv is every time 1 only.. 

回答

0

在收貨方作出Bundle的對象。

Bundle myBundle = new Bundle(); // Declare above 
    String temp; 

    myBundle = getIntent().getIntExtra(); 
    temp = myBundle.getString("ks"); // temp will have the val1. 

希望你能現在得到它。

+0

查詢您的迴應,在這裏我從ativity1獲取值到activity2 prblm是如果用戶再次返回activity2到activity1時間計數變量refereshed,使計數'0'的時間在那裏,'1'刪除所以如果我再點擊一下按鈕,count也增加到1,而不是2.那是我的prblm – user1089640 2012-04-27 11:33:14

+0

@ user1089640:然後聲明你的變量爲Public Static修飾符。試試這個鏈接 - > http://www.roseindia.net/java/beginners/howtoaccessstaticmethod.shtml – Bhavin 2012-04-27 11:56:50

+0

thakyou這麼多我使用公共int countk4時間我不getting.but現在我使用公共靜態int countk4現在我越來越結果 – user1089640 2012-04-27 12:11:29

相關問題