2013-03-03 159 views
0

所以我在gridview中有圖像。這些圖像顯示在一個活動中。點擊其中一個圖像時,該圖像將啓動新的活動。在此活動中,如果用戶輸入正確答案,則開始新活動,表明答案正確。在用戶輸入正確答案之後,我想用gridwiew中的複選標記將此圖像設置得更加透明。如果用戶再次點擊這個正確的視圖,我想顯示相同的活動,表明它解決了正確的。我怎樣才能做到這一點?在gridview中設置圖像爲透明

這裏是我的活動包含網格視圖:

public class LogoSelectionActivity extends Activity { 
. 
. 
gridview.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 

      Intent intent = new Intent(LogoSelectionActivity.this, LogoActivity.class); 
      intent.putExtra ("clicked_position", position); 
      startActivity(intent); 
} 

這裏是我的活動,其中用戶進行輸入:

public class LogoActivity extends Activity{ 

EditText text; 
Button check; 
Boolean a; 
int id; 
Names name; 
@Override 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_logo); 
    check = (Button) findViewById(R.id.Check_button); 
    text = (EditText) findViewById(R.id.editText1); 
    ImageView view = (ImageView)findViewById(R.id.imageView1); 
    final ImageView incorrect = (ImageView)findViewById(R.id.incorrect); 
    switch (getIntent().getIntExtra ("clicked_position", -1)) 
    { 
     case 0: 
     view.setImageResource(R.drawable.adese); 
     id = R.drawable.adese; 
     break; 
     case 1: 
     view.setImageResource(R.drawable.birvar); 
     id = R.drawable.birvar; 
     break; 
     case 2: 
     view.setImageResource(R.drawable.agaoglu); 
     break; 
     case 3: 
      view.setImageResource(R.drawable.akinsoft); 
      break; 
     default: 
     view.setImageResource(R.drawable.afra); 
     id = R.drawable.afra; 
    } 
    name = Names.forDrawable(id); 
    check.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 

      a=name.isCorrect(text.getText().toString()); 
      if(a==true){ 
      Intent intent = new Intent(LogoActivity.this, CorrectActivity.class); 
      startActivity(intent); 
      } 
      else{ 
       incorrect.setVisibility(0); 
       incorrect.setVisibility(4); 
      } 
     } 
     }); 
    } 
} 

我希望我能清楚地解釋我的意圖。

回答

1

有很多方法可以做到這一點。因爲這不是問題,所以您需要在您的項目中使用這些功能。

根據我的邏輯我給你一個解決方案。

步驟:

  1. 創建您的項目在網格視圖的長度與缺省值爲一個靜態數組是0

    static int[] items = {0,0,0,...}; 
    
  2. 現在getView梅索德網格視圖與檢查值根據陣列中的位置,如果它是0,那麼它將看起來像正常,否則它會看起來不同(這裏你想透明與複選框,這將通過添加一個更多的圖像上得到它。)

    If(items[position] == 0){ 
    
    }else{ 
    
    } 
    
  3. 現在,當用戶輕敲任何圖像和導航到其他屏幕(假設活動B)從該陣列的位置的該時間通值,並且在活動B的OnCreate()檢查。

    gridview.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
    
        Intent intent = new Intent(LogoSelectionActivity.this, LogoActivity.class); 
        intent.putExtra ("clicked_position", position); 
        intent.putExtra ("answered_or_not", items[position]); 
    
        startActivity(intent); 
    } 
    
  4. 如果回答裝置如果它的值是1,那麼相應地顯示其他明智,因爲它是。

  5. 而當它的用戶給出答案未答覆的問題,使其值1在該數組中。

我希望它會幫助你可以詢問是否有任何問題。

+0

它似乎工作。我嘗試了一個小例子。如果我在構造整個代碼時遇到問題,我會再次問你是否可以。感謝您的時間。 – ocry 2013-03-03 12:52:42

+0

如果我點擊了已回答的視圖,我會得到表明該信息正確的活動。它工作正常。但是,如果我關閉該應用程序並重新打開它,則所有這些應用程序都會重置並以默認值開始。我怎樣才能做到永久? – ocry 2013-03-03 13:03:10

+0

ohh爲此你必須選擇(1)共享首選項和(2)保存在數據庫中。 – 2013-03-04 03:43:19