2012-06-17 1 views
-1

Приложение, которое я создаю, представляет собой простое приложение для вопросов и ответов. Вопросы (в строчном массиве) находятся в пользовательском listView.Запустите действие из ListView, получите дополнительные данные из строки и добавьте изображение в макет

Что бы я хотел сделать, так это то, что когда я нажимаю на вопрос, он берет меня на один макет, и соответствующий ответ (из строкового массива) появится по отношению к заданному вопросу, т.е. если был задан вопрос 3, ответ 3 будет появляться. Кроме того, под каждым ответом появляется другое изображение, например. pic1, pic2, pic3. Я считаю, что класс Main должен реализовать onItemClickListener и использовать переключатель/case. Я думаю, что я должен использовать намеренные дополнения, но не могу найти, как написать код для этого процесса.


Вопросы массив строк:

<resources> 
    <string-array name="questions"> 
     <item >q1</item> 
     <item >q2</item> 
     <item >q3</item> 
    </string-array> 
</resources> 

основной макет для ListView вопросы:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:text="Questions" /> 

    <ListView 
     android:id="@android:id/list" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 
    </ListView> 

</LinearLayout> 

list_View расположение:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="TextView" /> 

</LinearLayout> 

Главная Java класс:

общественного класса Main расширяет ListActivity {

общественного недействительными OnCreate (Bundle savedInstanceState) { super.onCreate (savedInstanceState);
setContentView (R.layout.main);

setListAdapter(new MyAdapter(this, android.R.layout.simple_list_item_1, 
      R.id.textView1, getResources() 
        .getStringArray(R.array.questions))); } 

частный класс MyAdapter расширяет ArrayAdapter {

public MyAdapter(Context context, int resource, int textViewResourceId, 
      String[] strings) {    
       super(context, resource, textViewResourceId, strings); 

    } 

    public View getView(int position, View convertView, ViewGroup parent) { 

     LayoutInflater inflater = (LayoutInflater) 

getSystemService (Context.LAYOUT_INFLATER_SERVICE); Показать строку = inflater.inflate (R.layout.list_view, parent, false); String [] items = getResources(). GetStringArray (R.array.вопросов);

 TextView tv = (TextView) row.findViewById(R.id.textView1); 
     tv.setText(items[position]); 

     return row;   } } 

}


Ответы строковый массив

<resources> 
    <string-array name="answers"> 
     <item>a1</item> 
     <item>a2</item> 
     <item>a3</item> 
    </string-array> 
</resources> 

макет Ответ

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="TextView" /> 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/ic_launcher" /> 

</LinearLayout> 

Ответ класса

public class Answer extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.answer); 
    } 
} 

+0

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

+0

Я проделал много поисков и не могу обдумать это. Я буду продолжать пытаться. Cheers – SAnderoid

ответ

0

Привет вы можете реализовать OnClick слушателя для просмотра «строки» внутри метода GetView и передать требуемую деталь вопрос в массовка ваш ответ.

Добавить дополнительный намерению:

yourintent.putExtra("myquestionref","Question 1"); 

Получение дополнительных информации от намерения:

getIntent().getStringExtra("myquestionref"); 

Android Intent extra sample

Пожалуйста, дайте мне знать, если у вас есть какие-либо запрос.

+0

Спасибо за ваш вклад, я до сих пор не уверен, где разместить этот код, но я буду продолжать искать и оглядываться. ура – SAnderoid

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