سؤال

أحاول إنشاء ردهة لعبة لمشروع ، وأود أن يكون نص حالة اللعبة بلون مختلف: Red للعبة [in Progress] و Green للعبة [في انتظار لاعبي X. ] ". سيتم ملء ListView بالبيانات ، وسيحتوي كل عنصر على معرف لعبة ، ثم على الفور على يمين حالة اللعبة.

الآن أنا أستخدم رمز Hello ListView بشكل أساسي لإنشاء ListView الخاص بي.

(في مُنشئ)

ArrayList<HashMap<String, String>> gameList = new ArrayList<HashMap<String, String>>();
private ListView gamesListView;
private SimpleAdapter gameItems.

(في oncreate ())

gamesListView = (ListView) findViewById(R.id.listViewGames);
gameItems = new SimpleAdapter(this, gameList, R.layout.gamelistitem, 
    new String[] { "line1, "line2}, 
    new int[] { R.id.tvGameID, R.id.tvGameStatus });
gamesListView.setAdapter(gameItems);

ثم ، لدي زر تحديث يحصل على بيانات من قاعدة البيانات الخاصة بنا. ستحصل على سلسلتين ، واحدة لمعرف اللعبة ، والآخر لحالة اللعبة. إذا كانت حالة اللعبة 0 ، فإنها لا تزال تنتظر اللاعبين. إذا كانت حالة اللعبة 1 ، فستبدأ اللعبة. لذلك ، أقوم بإنشاء لعبة GameItem لإضافتها إلى Gamelist:

HashMap<String, String> gameItem = new HashMap<String, String>();
gameItem.put("line1", gameIDString);
gameItem.put("line2", renderGameStatus(gameStatusString));
gameList.add(gameItem);
gameItems.notifyDataSetChanged();

private String renderGameStatus(String statusString) {
    if (statusString.equals("0")) {
        return "[Waiting for players]";
    } else {
        return "[IN PROGRESS]";
    }
}

هذا هو المكان الذي عالق. لا أفهم حقًا كيف يمكنني تغيير Extenter TextView عندما أقوم بإنشاء GameItem أو عندما أضيف ذلك إلى Gamelist. لا توجد طريقة يمكنني رؤيتها للوصول إلى خصائص TextView. أرى كيف يتم تعيين نص العرض (من خلال تعيين السلاسل إلى "Line1" و "Line2" ، لكنني لا أعرف كيفية تغيير أي من الخصائص.

شكرا على اي مساعدة!

هل كانت مفيدة؟

المحلول 2

الإجابة الصحيحة على هذا السؤال هي اتباع أحد البرامج التعليمية العديدة الموجودة على صفوف ListView المخصصة ، واستخدام محول مخصص لمقصة القائمة الخاصة بك. هنا جيد.

نصائح أخرى

هل تقوم بإنشاء TextView في ملف XML؟ إذا كان الأمر كذلك ، فحاول:

TextView t = (TextView) findViewById(R.layout.yourTextView);
t.setTextColor(color);
t.setBackgroundColor(color);

امل ان يساعد

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top