2017-07-10 4 views
0

Ich habe zwei Fragments. Ein bestehen aus Fragen, während andere Fragment bestehen aus Antworten. Beispiel: Wenn eine Person auf Frage (8) klickt, bedeutet das, dass Sie Item Nein 8 sagen können, dann sollte sie zur nächsten Aktivität gehen und die Antwort (8) dieser Frage hervorheben. Ich stecke fest. Ich werde dir dankbar sein. Hier ist ein Code, der Frage Nr. Oder Liste Artikel Nr. Zur nächsten Aktivität und nächsten Aktivitätscode sendet und diese Frage in Interger "a" speichert. Welche Art von IF-Bedingung kann nun in der nächsten Aktivität funktionieren?Wie markieren Sie das Element (Listview) der nächsten Aktivität nach dem Klicken auf das Element (Listview) der vorherigen Aktivität?

Erste Aktivität

lst.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

      int index = position + 1; 
      Intent it = new Intent(this.getActivity(), NextActivity.class); 
      it.putExtra("Qlist", index); 
      startActivity(it); 


     } 

Nächste Aktivität

Intent it = getActivity().getIntent(); 

    int a = it.getIntExtra("Qlist", 0); 

    String result=String.valueOf(a); 

    Toast.makeText(getActivity(), ""+a, Toast.LENGTH_LONG).show(); 

L istView Adapter Code ersten Aktivität (mit SQLite)

DatabaseAccess db=DatabaseAccess.getInstance(getActivity().getApplicationContext()); 



    List<String> lst; 
    db.open(); 
    lst=db.getexamq(); 
    db.close(); 

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(ExamQ.this.getActivity(), android.R.layout.simple_list_item_1, lst); 
    lv.setAdapter(adapter); 

Listview-Adapter Code von Next-Aktivität (mit SQLite)

DatabaseAccess db=DatabaseAccess.getInstance(getActivity().getApplicationContext()); 



    List<String> lst; 
    db.open(); 
    lst=db.getexamq(); 
    db.close(); 

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(ExamA.this.getActivity(), android.R.layout.simple_list_item_1, lst); 
    lv.setAdapter(adapter); 
+0

Können Sie einige Code schreiben? –

+0

Was hast du schon? Ich würde gerne helfen, aber ein wenig Arbeit von Ihrer Seite ist willkommen. – Maantje

+0

Ich versuche Aber der Punkt ist, dass ich eigentlich wissen möchte, wo ich anfangen soll. .. aber lass mich nachdenken ..... – Uzair

Antwort

0
  1. Verwenden Sie die Absicht Bundle die QuestionID zu bewegen oder Frage Nein zur nächsten Aktivität
  2. Setzen Sie im Adapter der Questions ListView ein anderes TERGRU nd Farbe für die Frage mit einer ähnlichen FrageId. Sie können den Hintergrund sogar so einstellen, dass nach einer bestimmten Anzahl von Millisekunden oder Sekunden eine Überblendungsanimation oder ein normaler Übergang erfolgt.

den gesamten Code erforderlich ist VIEL Schreib etwas (ein Code), und wir können auf dem ListViewAdapter im Falle helfen sie nicht

EDIT funktioniert: PROBE FAST CUSTOM Adaptercode

lv.setAdapter(new ArrayAdapter(ExamQ.this.getActivity(), android.R.layout.simple_list_item_1, android.R.id.text1, lst){ 
     @Override 
     public View getView(final int position, View convertView, ViewGroup parent) { 
      View v = convertView; 
      final String examQ = lst[position]; 

      if (v == null) { 
       LayoutInflater vi = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
       v = vi.inflate(android.R.layout.simple_list_item_1, null); 
      } 

      TextView tv = (TextView) v.findViewById(android.R.id.text1); 
      tv.setText(examQ); 


      if(examQ.equals(result)) { // Unique identifier here 
       v.setBackground(Color.RED); //Some other fancy color here 
      } 
      return v; 
     } 
    }); 

jedoch, ich dich nicht nur entdeckt, für jede Frage eine eindeutige Kennung haben. Verwenden Sie also zur Zeit nur die Fragezeichenfolge und übergeben Sie sie an die nächste Aktivität.

+0

Ich kann Frage Nein zur nächsten Aktivität verschieben. Aber können Sie mir sagen, dass, wenn wir If Condition verwenden, um die Frage nicht mit Item No of Next-Aktivität übereinstimmen und wenn sie übereinstimmen, dann markieren Sie es. Ist das möglich? – Uzair

+0

Ja, geben Sie den Adaptercode, den XML-Code und den Aktivitätscode ein, und ich kann Ihnen helfen. –

+0

Werfen Sie einen Blick darauf. Wie ich meine Frage mit Code aktualisiert habe, habe ich. – Uzair

0

Angenommen, Sie haben eine Textansicht für jede Antwort in der Listenansicht des zweiten Fragments. Dann können Sie die Frage-ID in der getView() des Adapters von Listview im zweiten Fragment vergleichen. Jetzt, wenn Sie Ihre Antwort finden, rufen Sie einfach textview.setBackgroundColor().

Edit: Nach lv.setAdapter (adapter); hinzufügen

View v = lv.getViewAt(a); 
if(v!=null) 
    v.setBackgroundColor (Color.RED); 
+0

Können Sie mir in einem Code erklären? Ich meine, hast du irgendeinen Code, der mir nur sagen kann, wie man diese Frage prüft? Nein mit der nächsten Aktivität ?? – Uzair

Verwandte Themen