android,没报错,怎么不能跑?

MainActivity.java

 package com.example.ch02_listview;


import android.app.ListActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;


public class MainActivity extends ListActivity {
    private String[] mListStr={"小胡","男","19","杭州","xiaohu@gmail.com","15757188543"};
    ListView mListView=null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mListView=getListView();
        setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,mListStr));
        mListView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
            @Override
            public void onItemClick(AdapterView<?> adapterView,View view,int position,long id) {
                Toast.makeText(MainActivity.this,"你选择了:"+mListStr[position],Toast.LENGTH_LONG).show();
            }
        });
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

图片说明

图片说明

你这个是继承的ListActivity, getListView()是ListActivity的方法,这里没问题
问题应该是在onCreate方法里setContentView(R.layout.activity_main); 这一行,既然用了ListActivity就已经有了一个默认布局了,直接删掉这一行,书里应该没有这一行吧
activity_main这个布局文件如果没地方用到也可以删了

请问getListView()怎么来的用来干什么的。
你是不是还没有在xml文件设置ListView布局,在onCreate也没有绑定该控件。
请检查一下。

清理一下整个项目,再运行试试。

mListView=getListView();
这句话用该是找控件的
但是在楼主贴的代码里没有看到getListView()这个方法,楼主添加上再试试。

你在布局里面添加个ListView,通过这种方式获取

你在布局里面添加个ListView,通过这种方式获取

先重新clean一下项目看看有没有问题,或者看看你的控制台的problem里面有没有错误,如图图片说明

public class MainActivity extends ListActivity {
private String[] mListStr = {"小胡", "男", "19", "杭州", "xiaohu@gmail.com", "15757188543"};
ListView mListView = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mListView = getListView();
    mListView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mListStr));
    mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> view, View view1, int i, long l) {
            Toast.makeText(MainActivity.this, "你点击了" + mListStr[i], Toast.LENGTH_SHORT).show();
        }
    });
}

}
//去掉setContentView(R.layout.activity_main);就正常了
图片说明

把这行去掉setContentView(R.layout.activity_main); 建议自己在xml中自己写一个listview

继承了父类ListActivity,可直接通过getListView()获取listview,再使用方法设置当前的视图setContentView(R.layout.activity_main),两者会造成冲突,留其一应该就可以了.