2016-12-07 70 views
0

我在線上課程,我可以通過這個練習,由於某種原因不工作。 onListItemClick()沒有被調用。我已經嘗試解決這個問題,但我無法擺脫這個問題 請幫我解決這個問題。onListItemClick沒有被調用

我對MainActivity.java代碼是

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); 
} 

} 

代碼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); 
} 
} 

我對friend.xml代碼是

<?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> 

最後我的代碼strings.xml是

<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

您還沒有設置單擊列表 –

+0

@VivekMishra 我很抱歉,我不完全理解的監聽器。我是Android新手。你能幫我解決嗎? –

+0

顯示你的setListAdapter方法 –

回答

0

使用下面的代碼爲您Friend.xml和運行代碼...

<?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

對不起,我不完全明白。我是Android新手。你能幫我解決嗎? –

+0

查看已更新的答案 –

+0

佈局正常。 ListActivity類擴展了使用我應該在上面的朋友佈局的Activity類。 問題是沒有被調用的方法onListItemClick()。 –