2016-12-07 8 views
0

Ich verfolge einen Online-Kurs und kann über diese Übung hinweg aus irgendeinem Grund nicht arbeiten. Die onListItemClick() wird nicht aufgerufen. Ich habe versucht, dies zu beheben, aber ich konnte das Problem nicht loswerden Bitte helfen Sie mir, dieses Problem zu lösen.onListItemClick wird nicht aufgerufen

für MainActivity.java Mein Code ist

package hk.ust.cse.comp107x.greetfriend; 

import android.app.ListActivity; 
import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ArrayAdapter; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.ListAdapter; 
import android.widget.ListView; 
import android.widget.TextView; 

public class MainActivity extends ListActivity{ 
String names[]; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    names=getResources().getStringArray(R.array.friends); 
    //setListAdapter((ListAdapter)new ArrayAdapter<String>(this,R.layout.friend_item,names)); 
    setListAdapter(new ArrayAdapter<String>(this, R.layout.friend_item, names)); 
} 

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 
    super.onListItemClick(l, v, position, id); 
    Intent in=new Intent(this,ShowMessage.class); 
    in.putExtra("message","Good Day "+names[(int) id]+"!!"); 
    startActivity(in); 
} 

} 

-Code für ShowMessage.java

package hk.ust.cse.comp107x.greetfriend; 

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.TextView; 

public class ShowMessage extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_show_message); 
    Intent in=getIntent(); 
    String message=in.getStringExtra("message"); 
    TextView textMessage=(TextView)findViewById(R.id.textMessage); 
    textMessage.setText(message); 
} 
} 
ist

Mein Code für friend.xml ist

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" android:layout_height="match_parent" 
    android:text="Friend Name" 
    android:gravity="center_vertical|center_horizontal" 
    android:autoText="true" 
    android:textSize="24sp" 
    android:padding="20dp" 
    android:id="@+id/textview"> 

</TextView> 

Und mein Code schließlich für strings.xml ist

<resources> 
    <string name="app_name">GreetFriend</string> 
    <string-array name="friends"> 
     <item>John</item> 
     <item>Paul</item> 
     <item>George</item> 
     <item>Ringo</item> 
    </string-array> 
</resources> 
+0

Sie nicht Hörer auf Ihrer Liste klicken Sie eingestellt haben –

+0

@VivekMishra Ich bin traurig, dass ich nicht vollständig verstehen. Ich bin neu in Android. Könntest du mich bitte durchgehen? –

+0

Zeigen Sie Ihre setListAdapter-Methode –

Antwort

0

Verwenden Sie den folgenden Code für Ihre Friend.xml und den Code ausführen ...

<?xml version="1.0" encoding="utf-8"?> 

     <LinearLayout android:layout_width="match_parent" 
android:layout_height="wrap_content" 
xmlns:android="http://schemas.android.com/apk/res/android" 
    > 
     <TextView  android:layout_width="match_parent" android:layout_height="match_parent" 
    android:text="Friend Name" 
    android:gravity="center_vertical|center_horizontal" 
    android:textSize="24sp" 
    android:padding="20dp" 
    android:id="@+id/textviewfriend"> 

</TextView> 

    </LinearLayout> 
+0

Es tut mir leid, ich verstehe nicht vollständig. Ich bin neu in Android. Könntest du mich bitte durchgehen? –

+0

siehe die aktualisierte Antwort –

+0

Das Layout ist in Ordnung. Die ListActivity-Klasse erweitert die Aktivitätsklasse, die das Freundeslayout verwendet, das ich oben verwenden sollte. Das Problem ist die Methode onListItemClick(), die nicht aufgehoben wird. –