2012-01-18 58 views
-1
列表項的位置

所以我有這個類在這裏:獲取Android中

package phil.droid.game; 


import android.content.Intent; 
import android.content.res.Resources; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.AdapterView.OnItemClickListener; 

public class GameList extends GamesTrialActivity 
{ 

private ListView lv1; 
protected String Game_names[]={"God of War","FOS RO DAH", "dhwaud"}; 
private String Game_pics[]={"God of War","God of War II"}; 
private int pos; 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.gamelist); 
    lv1=(ListView)findViewById(R.id.thegamelist); 

    lv1.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , Game_names)); 
    lv1.setOnItemClickListener(new OnItemClickListener() 
    { 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
      { 


        pos = position;  
       Intent i = new Intent(GameList.this, game_viewer.class); 
       startActivity(i); 

      } 
    }); 


}    
} 

然後將此VclassV延長了一個^以上^

package phil.droid.game; 

import android.os.Bundle; 
import android.widget.TextView; 
public class game_viewer extends GameList 
{ 


    public void onCreate(Bundle savedInstanceState) 
    { 

      super.onCreate(savedInstanceState); 

      setContentView(R.layout.game_template); 

      TextView game_title = (TextView)findViewById(R.id.GameTitle); 
      game_title.setText("" + pos); 
    } 
} 

的問題是在一刻無論我點擊什麼選項,最後一位都將「pos」識別爲「0」。有人可以提出一種方法,讓pos被認爲是上一課中點擊的數字元素嗎?

+4

我會交易你看它的標題與意義。 –

回答

1

您試圖執行的操作無法工作:新啓動的活動不會與父級共享相同的存儲,即使它們繼承了也是如此。唯一可能的方法是價值是靜態的,但這也不是一個好主意。

你應該做的,而不是在開始活動之前,將數據發送爲意圖的一部分,例如:

intent.putExtra("pos", position); 

,然後你可以用

getIntent().getIntExtra("pos", -1); // -1 is used as default value 
拉出新活動

此外,game_viewer應該最有可能是一個單獨的活動,而不是繼承自GameList。