2012-05-12 2 views
0

Я начинающий программист, поэтому, пожалуйста, несите меня. Я пытаюсь создать приложение, в котором элемент в представлении списка влияет на то, что будет отображаться в следующем действии. До сих пор, у меня есть список активность:Новичок Android: ListView влияет на следующий класс

public class Primary extends ListActivity{ 
private static final String[] items = {"Item1", "Item2", "Item3", "item4", "Item5"}; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items)); 

    TextView heading =(TextView)findViewById(R.id.listViewHeading); 
    heading.setText("Primary"); 
} 

public void onListItemClick(ListView parent, View v, int position, long id){ 

} 

и для второй активности, у меня есть это:

public class ImageActivity extends Activity{ 
TextView heading; 
ImageView image; 
TextView text; 
    public static final String[] headings={"heading 1", "heading 2", "heading 3", "heading 4", "heading 5",}; 


@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.image_activity); 

    heading = (TextView)findViewById(R.id.adHeading); 
    image = (ImageView)findViewById(R.id.adImage); 
    text =(TextView)findViewById(R.id.adText); 

    addInfo(); 
} 

private void addInfo() { 
    heading.setText(headings[x]); 
    image.setImageResource(images[x]); 
    text.setText(text[x]); 

} 

Как я могу сделать так, что заголовок, изображение и изменение текста на основе какой элемент в списке был выбран?

ответ

0

Я думаю, что вы хотите установить заголовок, изображение и текст во втором действии, связанные с выбранным индексом первого действия в списке.

просто 1 вещь, поставить следующий код в 1-активности

public void onListItemClick(ListView parent, View v, int position, long id) 
    { 
     Intent intent = new Intent(this.getApplicationContext(), ImageActivity.class); 
     intent.putExtra("pos", position); 
     startActivity(intent); 
    } 

так, теперь у ¨R прохождения положения пункта, выбранного в списке.

Теперь, поместите следующий код в следующей деятельности

private void addInfo() 
    { 
     Bundle ext = getIntent().getExtras(); 
     if(ext != null) 
     { 
      int pos= ext.getInteger("pos"); 
         // ext.getInt("pos"); 

      heading.setText(headings[pos]); 

      // hey, frend, you don't have any array for selecting image-name and text 
      // image.setImageResource(images[x]); 
      // text.setText(text[x]); 
     } 
    } 
+0

использование следующей строки кода: –

+0

Intent intent = new Intent (getApplicationContext(), ImageActivity.class); –

+0

вместо приведенной выше строки кода –

2

Активность в списке.

Intent i = new Intent(this, ImageActivity.class); 
    i.putExtra("data", data); 
    startActivity(i); 

Следующая Acitivty onCreate() способ.

final String data = getIntent().getStringExtra("data"); 
0

Используйте функцию «Дополнительные функции», которые являются частью намерения.

Когда вы вызываете начало ImageActivity из Primary, вы можете использовать «дополнительные» для передачи информации между ними.

См. this для получения более подробной информации.

Я приведу здесь базовый пример. Когда элемент списка щелкнут, поместите данные, которые вы хотите, чтобы ImageActivity имела намерение, используя «putExtra».

Intent intent = new Intent(getBaseContext(), ImageActivity.class); 
String data = "somedata"; 
intent.putExtra("DATA", data); 
startActivity(intent) 

Затем в ImageActivity OnCreate, получить данные, как это:

Bundle extras = getIntent().getExtras(); 
if(extras !=null) { 
String data= extras.getString("DATA"); // matches the tag used in putExtra 
} 

После того как вы извлекли данные, установите необходимые виды.

0

использования ниже кода

public void onListItemClick(ListView parent, View v, int position, long id) 
     { 
      Intent intent = new Intent(Primary.this, ImageActivity.class); 
      intent.putExtra("selected value", item[position]); 
      startActivity(intent); 
     } 

в классе ImageActivity: в OnCreate (или вы можете поместить переменный элемент как глобальные)

String item = getIntent().getStringExtra("Selected value"); 
Смежные вопросы