Naar content
Trending apps
  • Inbox by Gmail

  • Maps: Navigatie en OV

  • WhatsApp Messenger

  • Messenger

  • Facebook

Trending games
  • Dr. Mario World

  • Harry Potter: Wizards Unite

  • Breaking Bad: Criminal Elements

  • The Elder Scrolls: Blades

  • Ghostbusters World

Trending smartphones
  • Microsoft Surface Duo

  • OnePlus 7T Pro

  • Nokia 7.2

  • Xiaomi Mi 9T Pro

  • Samsung Galaxy Note 10 Plus

Nieuwste tablets
  • Samsung Galaxy Tab S6

  • Samsung Galaxy Tab A 10.5

  • Samsung Galaxy Tab S4

  • Samsung Galaxy Tab S3 9.7

  • Asus Zenpad 3S 10

ritchietomasouw

ritchietomasouw

  • Lid sinds 02 februari 2011
  • Berichten 10
  • Reputatie 0
  • #1
  • 13 september 2011
  • 11:20

Hallo,

Ik heb een app gemaakt (met hulp) die vanuit een php file de wedstrijdprogramma vult. Alles werkt en het programma wordt netjes getoond in mijn app. Alleen is de layout op dit moment zodanig dat elke wedstrijd, rij, dezelfde kleur heeft.. namelijk wit.

Ik wil graag de rij waarin mijn team (iets van contains “VVZ”) een andere kleur c.q. highlight geven. De rest van de programma moet wit blijven behalve de rij van mijn team.

Moet ik dit in de linearlayout regelen of al ergens in mijn activity??

Hieronder vind je de code van mijn activity en linearlayout, tevens een screenshot van programma.

Hopelijk kan iemand mij helpen.

2964

public class WedstrijdenActivity extends ListActivity  implements OnTouchListener {

private final int VVZ4_MAX_WEDSTRIJDEN = 20;
public static final String KEY_121 = "http://URL-NAAR-EEN-PHP-FILE.php";
private int iNumWedstrijden = 0;



private float downXValue;

public class Vvz4Wedstrijd {
public String datum;
public String tijd;
public String wedstrijd;


Vvz4Wedstrijd(String datum, String tijd, String wedstrijd) {
this.datum = datum;
this.tijd = tijd;
this.wedstrijd = wedstrijd;
}
};



Vvz4Wedstrijd[] Vvz4WedstrijdData;




/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.wedstrijden);

//setTitle(getString(R.string.wedstrijden));

// maak een array aan om alle wedstrijden in te zetten
Vvz4WedstrijdData = new Vvz4Wedstrijd[VVZ4_MAX_WEDSTRIJDEN];


// zet de wedstrijden in de array
FillWedstrijden();

getListView().setDividerHeight(2);

getListView().setOnTouchListener((OnTouchListener) this);
}






private void FillWedstrijden() {


// wissen array
for (int i = 0; i < VVZ4_MAX_WEDSTRIJDEN; i++) {
Vvz4WedstrijdData[i] = new Vvz4Wedstrijd( "","","");
}

//haal de php data op
String phpString = getServerData(WedstrijdenActivity.KEY_121);


//parse json data
try{
JSONArray jArray = new JSONArray(phpString);
int i;
for(i=0;i<jArray.length();i++){
if (i >= VVZ4_MAX_WEDSTRIJDEN) {break;} // array is full
JSONObject json_data = jArray.getJSONObject(i);
Vvz4WedstrijdData[i].datum = json_data.getString("Datum");
Vvz4WedstrijdData[i].tijd = json_data.getString("Tijd");
Vvz4WedstrijdData[i].wedstrijd = json_data.getString("Wedstrijd").replaceAll("&#039;", "'");
}
iNumWedstrijden = i;
}catch(JSONException e){
Log.e("log_tag", "Error parsing data "+e.toString());
}

// misschien is een adapter reset ook genoeg?
setListAdapter(new Vvz4WedstrijdDataAdapter(this));
}

public class Vvz4WedstrijdDataAdapter extends BaseAdapter {
private Context context;


public Vvz4WedstrijdDataAdapter(Context context) {
this.context = context;
}

public int getCount() {
return iNumWedstrijden;
}


@Override
public Object getItem(int position) {


return Vvz4WedstrijdData[position];
}


public long getItemId(int position) {
return position;
}

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/roostermain"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="horizontal"
android:background="#6B8E23"
android:layout_width="fill_parent"
android:layout_weight="1" android:layout_height="50dip">
<TextView
android:id="@+id/lblDatum"
android:layout_width="60dp"
android:textStyle="bold"
android:text="DATUM"
android:textSize="10dp"
android:textColor="#FFFFFFFF"
android:singleLine="true"
android:gravity="center_vertical"
android:layout_height="fill_parent"/>
<TextView
android:id="@+id/lblTijd"
android:layout_width="60dp"
android:textStyle="bold"
android:text="AANVANG"
android:textSize="10dp"
android:textColor="#FFFFFFFF"
android:singleLine="true"
android:gravity="center_vertical"
android:layout_height="fill_parent"/>
<TextView
android:id="@+id/lblWedstrijd"
android:layout_width="200dp"
android:textStyle="bold"
android:text="WEDSTRIJD"
android:textSize="10dp"
android:textColor="#FFFFFFFF"
android:singleLine="true"
android:gravity="center_vertical"
android:layout_height="fill_parent"/>
</LinearLayout>
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:divider="#FF000000"
android:background="#999"
android:textColor="#FF555555"
/>
<TextView android:id="@android:id/empty"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:background="#FFFFFFFF"
android:textColor="#FF555555"
/>
</LinearLayout>

Bewerkt (13 september 2011 11:20)
redbulletnl

redbulletnl

  • Lid sinds 02 september 2011
  • Berichten 2991
  • Reputatie 60
  • #2
  • 13 september 2011
  • 11:50

ik denk dat je het in de activity moet regelen, want je moeten kijken welke waarden er in je array staat?

Bewerkt (13 september 2011 11:50)
RunaR

RunaR

  • Lid sinds 09 augustus 2010
  • Berichten 214
  • Reputatie 0
  • #3
  • 13 september 2011
  • 16:43

Als je dat wil doen, moet je waarschijnlijk aan de slag met een custom ListAdapter:
Android Series: Custom ListView items and adapters | Software Passion

Dan kan je meer in je list item zetten dan alleen tekst. Vaak wordt dit gebruikt om een icoontje te tonen, maar een aangepaste background kan natuurlijk ook.

Bewerkt (13 september 2011 16:43)
klwinkel

klwinkel

  • Lid sinds 23 oktober 2010
  • Berichten 951
  • Reputatie 0
  • #4
  • 13 september 2011
  • 17:22

Hoi Ritchie,

Je had het gewoon kunnen vragen hoor;-)
Als je me het project even mailt, dan maak ik het er voor je in, dat is makkelijker dan hier uitleggen en minder kans op fouten, want dan kan ik het even zelft testen.
Daarna kan je zelf de layout van de regels nog wel verder verfraaien…

Het resultaat mag je wel posten hier natuurlijk voor de meelezers…

Bewerkt (13 september 2011 17:22)
ritchietomasouw

ritchietomasouw

  • Lid sinds 02 februari 2011
  • Berichten 10
  • Reputatie 0
  • #5
  • 15 september 2011
  • 13:37

Hoi Gerrit,

Ja sorry, maar was al zo lang geleden dat ik uberhaupt iets met de app gedaan heb, wilde je er niet mee lastig vallen.. Dacht afgelopen week pas om de app ff wat op te frissen voor mezelf en de spelers die het gebruiken

Maar iig alvast bedankt! ik zal je de files toesturen.

Groet
Ritchie

klwinkel;216945
Hoi Ritchie,

Je had het gewoon kunnen vragen hoor;-)
Als je me het project even mailt, dan maak ik het er voor je in, dat is makkelijker dan hier uitleggen en minder kans op fouten, want dan kan ik het even zelft testen.
Daarna kan je zelf de layout van de regels nog wel verder verfraaien…

Het resultaat mag je wel posten hier natuurlijk voor de meelezers…

Bewerkt (15 september 2011 13:37)
ritchietomasouw

ritchietomasouw

  • Lid sinds 02 februari 2011
  • Berichten 10
  • Reputatie 0
  • #6
  • 26 september 2011
  • 15:44

Hoi Allen, ik zou de oplossing nog terug posten.. dus bij deze een voorbeeld hoe dit is opgelost (credits goes to @KLWINKEL)

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

View v = convertView;
if (v == null) {
// sender is activity from where you call this adapter. Set it
// with construktor.
LayoutInflater vi = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.wedstrijdenrow, null);
}

Vvz4Wedstrijd item = (Vvz4Wedstrijd) getItem(position);

LinearLayout llRow = (LinearLayout) v.findViewById(R.id.llRow);
TextView tvDatum = (TextView) v.findViewById(R.id.lblDatum);
TextView tvTijd = (TextView) v.findViewById(R.id.lblTijd);
TextView tvWedstrijd = (TextView) v.findViewById(R.id.lblWedstrijd);

if (tvDatum != null) {
tvDatum.setText(String.format("%s", item.datum));
}
if (tvTijd != null) {
tvTijd.setText(String.format("%s", item.tijd));
}
if (tvWedstrijd != null) {
tvWedstrijd.setText(String.format("%s", item.wedstrijd));
}

if (item.wedstrijd.toUpperCase().contains("VVZ '49 4")) {
llRow.setBackgroundColor(Color.rgb(67, 158, 70));
tvDatum.setTextColor(Color.WHITE);
tvTijd.setTextColor(Color.WHITE);
tvWedstrijd.setTextColor(Color.WHITE);
} else {
// list items worden hergebruikt, dus altijd kleuren zetten, anders worden andere items ook groen.
llRow.setBackgroundColor(Color.WHITE);
tvDatum.setTextColor(Color.BLACK);
tvTijd.setTextColor(Color.BLACK);
tvWedstrijd.setTextColor(Color.BLACK);
}

return v;
}
}

Bewerkt (26 september 2011 15:44)
redbulletnl

redbulletnl

  • Lid sinds 02 september 2011
  • Berichten 2991
  • Reputatie 60
  • #7
  • 26 september 2011
  • 16:50

ga je de andere tabs ook gebruiken?

Bewerkt (26 september 2011 16:50)
ritchietomasouw

ritchietomasouw

  • Lid sinds 02 februari 2011
  • Berichten 10
  • Reputatie 0
  • #8
  • 26 september 2011
  • 16:53

Je bedoeld de uitslagen en stand tabs?? die zijn idd ook al gedaan.

Bewerkt (26 september 2011 16:53)

Reageer

Om te reageren, dien je te zijn ingelogd. Druk op de onderstaande knop om in te loggen of maak een nieuwe account aan.

Inloggen Registreren