ListView的Android问题

时间:2013-02-18 16:32:33

标签: android android-listview

好的,所以我已经尝试过自己解决这个问题,但即使我在stackoverflow上找到了一个已回答的问题(即这个问题Errors "Syntax error on token(s), misplaced construct(s), VariableDeclaratorId expected after this token MainActivity.java"),我仍然遇到问题。我有一个名为HeadlinesActivity的Activity,它是通过单击按钮从MainActivity启动的。我遇到的问题与我链接的问题中的问题相同,但我按照建议将ListView声明和其他相关内容移动到我的onCreate()中,并且摆脱了eclipse中的错误。但是,现在当我尝试在模拟器上测试应用程序时,如果我尝试单击标题按钮Android会显示一条消息,说明我的应用程序已停止。 这是HeadlinesActivity的代码:

import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Build;
import android.os.Bundle;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class HeadlinesActivity extends Activity {

@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_headlines);

    // Make sure we're running on Honeycomb or higher to use ActionBar APIs
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        // Show the Up button in the action bar.
        getActionBar().setDisplayHomeAsUpEnabled(true) ;
    }

    final ListView listView = (ListView) findViewById(R.id.listView1);
    final String[] values = { "Android", "iPhone", "WindowsMobile",
      "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
      "Linux", "OS/2" } ;
    final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
      R.layout.activity_headlines, R.id.textView1, values);

    // Assign adapter to ListView
    listView.setAdapter(adapter) ;
}

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

}

1 个答案:

答案 0 :(得分:1)

您在Activity和每个ListView行中使用相同的布局......

  • 活动的布局应该包含ListView(以及您想要的任何其他内容)。
  • ListView行不应该有ListView元素......它应该包含更多基本构建块,如TextViews,ImageViews等。

就当前错误而言,我猜测activity_headlines.xml没有标识为listView1的ListView或标识为textView1的TextView。尝试:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, values);