मैं सराहना करता हूं कि यह प्रश्न कई बार पूछा गया है - मैं अभी अपनी समस्या का सही समाधान नहीं निकाल पाया हूं। मैं आभारी रहूंगा अगर कोई मुझे उस समाधान के लिए निर्देशित कर सकता है जिसकी मुझे आवश्यकता है - मुझे पता है कि यह शायद एक बहुत ही बुनियादी समस्या है।

मेरे पास कई टेक्स्टफिल्ड हैं जिन्हें मैं एक सरणी में रखना चाहता हूं, ताकि उन्हें अनुक्रम में अपडेट किया जा सके। जब मैं उन्हें जोड़ने का प्रयास करता हूं, तो findViewById() फ़ंक्शन उन्हें शून्य के रूप में लौटाता है। नीचे गतिविधि के लिए ऑनक्रिएट विधि है, और गतिविधि के लिए एक्सएमएल भी है।

धन्यवाद :-)

override fun onCreate(savedInstanceState: Bundle?) 
{
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_nuble_game)
    windowManager.defaultDisplay.getMetrics(displayMetrics)

    val playerList = intent.getStringArrayListExtra("Player_Array")
    numberOfPlayers = playerList.count()

    playerNameLabels.add(rl_nubble_game_layout.findViewById(R.id.player1NameText) as TextView)
    playerNameLabels.add(rl_nubble_game_layout.findViewById(R.id.player2NameText) as TextView)
    playerNameLabels.add(rl_nubble_game_layout.findViewById(R.id.player3NameText) as TextView)
    playerNameLabels.add(rl_nubble_game_layout.findViewById(R.id.player4NameText) as TextView)

    playerScoreLabels.add(rl_nubble_game_layout.findViewById(R.id.player1ScoreText) as TextView)
    playerScoreLabels.add(rl_nubble_game_layout.findViewById(R.id.player2ScoreText) as TextView)
    playerScoreLabels.add(rl_nubble_game_layout.findViewById(R.id.player3ScoreText) as TextView)
    playerScoreLabels.add(rl_nubble_game_layout.findViewById(R.id.player4ScoreText) as TextView)

    for (name in playerList)
    {
        var thisPlayer = Player(name, false)
        thisPlayer.score = 0
        playerArray.add(thisPlayer)
    }

    if (numberOfPlayers == 1)
    {
        numberOfPlayers = 2
        var computerPlayer = Player("Conan the Destroyer", true)
        playerArray.add(computerPlayer)
    }

    for (i in 0..numberOfPlayers - 1)
    {
        playerNameLabels[i].text = playerArray[i].name
    }
}

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:showIn="@layout/activity_nuble_game"
    tools:context=".NubbleGameActivity">

<RelativeLayout
        android:id="@+id/rl_nubble_game_layout"
        android:layout_width="391dp"
        android:layout_height="663dp"
        android:orientation="vertical" tools:layout_editor_absoluteY="6dp" tools:layout_editor_absoluteX="4dp"/>
<TextView
        android:text="TextView"
        android:layout_width="162dp"
        android:layout_height="32dp"
        android:id="@+id/player1NameText" android:textSize="24sp"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_marginTop="16dp"
        android:layout_marginStart="28dp" app:layout_constraintStart_toStartOf="parent"/>
<TextView
        android:text="TextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/player1NameText"
        android:id="@+id/player1ScoreText" android:textSize="24sp"
        app:layout_constraintStart_toEndOf="@+id/player1NameText" android:layout_marginStart="32dp"
        android:layout_marginTop="16dp" app:layout_constraintTop_toTopOf="parent"/>
<TextView
        android:text="TextView"
        android:layout_width="165dp"
        android:layout_height="32dp"
        android:id="@+id/player2NameText" android:textSize="24sp"
        android:layout_below="@+id/player1NameText"
        android:layout_marginStart="28dp"
        app:layout_constraintStart_toStartOf="parent" android:layout_marginTop="12dp"
        app:layout_constraintTop_toBottomOf="@+id/player1NameText" android:layout_marginBottom="8dp"
        app:layout_constraintBottom_toTopOf="@+id/player3NameText"/>
<TextView
        android:text="TextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/player2NameText"
        android:layout_below="@+id/player1ScoreText"
        android:id="@+id/player2ScoreText" android:textSize="24sp"
        app:layout_constraintStart_toEndOf="@+id/player2NameText"
        android:layout_marginStart="28dp" android:layout_marginTop="12dp"
        app:layout_constraintTop_toBottomOf="@+id/player1ScoreText"/>
<TextView
        android:text="TextView"
        android:layout_width="167dp"
        android:layout_height="32dp"
        android:id="@+id/player3NameText" android:textSize="24sp"
        android:layout_below="@+id/player2NameText"
        app:layout_constraintTop_toBottomOf="@+id/player2NameText" android:layout_marginBottom="8dp"
        tools:layout_editor_absoluteY="105dp" android:layout_marginStart="28dp"
        app:layout_constraintStart_toStartOf="parent"/>
<TextView
        android:text="TextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/player3NameText"
        android:layout_below="@+id/player2ScoreText"
        android:id="@+id/player3ScoreText" android:textSize="24sp"
        app:layout_constraintStart_toEndOf="@+id/player3NameText"
        android:layout_marginStart="24dp" android:layout_marginTop="12dp"
        app:layout_constraintTop_toBottomOf="@+id/player2ScoreText"/>
<TextView
        android:text="TextView"
        android:layout_width="165dp"
        android:layout_height="32dp"
        android:layout_below="@+id/player3NameText"
        android:id="@+id/player4NameText" android:textSize="24sp"
        android:layout_marginStart="28dp" app:layout_constraintStart_toStartOf="parent"
        android:layout_marginTop="12dp" app:layout_constraintTop_toBottomOf="@+id/player3NameText"/>
<TextView
        android:text="TextView"
        android:layout_width="102dp"
        android:layout_height="32dp"
        android:layout_toRightOf="@+id/player4NameText"
        android:layout_below="@+id/player3ScoreText"
        android:id="@+id/player4ScoreText" android:textSize="24sp"
        app:layout_constraintStart_toEndOf="@+id/player4NameText" android:layout_marginStart="28dp"
        android:layout_marginTop="12dp" app:layout_constraintTop_toBottomOf="@+id/player3ScoreText"/>
0
HillInHarwich 18 जुलाई 2019, 15:45

2 जवाब

सबसे बढ़िया उत्तर

आपको करना चाहिए:

playerNameLabels.add(findViewById(R.id.player1NameText) as TextView)
playerNameLabels.add(findViewById(R.id.player2NameText) as TextView)
playerNameLabels.add(findViewById(R.id.player3NameText) as TextView)
playerNameLabels.add(findViewById(R.id.player4NameText) as TextView)

playerScoreLabels.add(findViewById(R.id.player1ScoreText) as TextView)
playerScoreLabels.add(findViewById(R.id.player2ScoreText) as TextView)
playerScoreLabels.add(findViewById(R.id.player3ScoreText) as TextView)
playerScoreLabels.add(findViewById(R.id.player4ScoreText) as TextView)
2
Alex 18 जुलाई 2019, 15:48

मुझे लगता है कि आप खिलाड़ी को एक-एक करके स्कोर दिखाना चाहते हैं। मेरा सुझाव है कि इस उद्देश्य के लिए रिसाइकलर व्यू का उपयोग करें। यह सबसे अच्छा अभ्यास होगा या प्रोग्राम के माध्यम से टेक्स्टव्यू के साथ एक लेआउट तैयार करेगा और इसे नंबरऑफप्लायर सूची के लूप के लिए रखेगा

0
Sam Raju 18 जुलाई 2019, 16:56