2012-01-18 2 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.

Смежные вопросы