onListItemClick未被调用

时间:2016-12-07 10:50:09

标签: android

我正在关注一个在线课程,我可以通过这个练习,由于某种原因无法正常工作。未调用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>

1 个答案:

答案 0 :(得分: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>