2010-08-28 80 views
1

我遇到了来自教程代码的几个问题:ListView Tutorial。该代码snipets给我的问题是:你好ListView教程问题

static final String[] COUNTRIES = new String[] { 

Toast.makeText(getApplicationContext(), ((View) view).getText(), 

的错误阅读下列分别:

  • 的参数国家是非法的改性剂;只有最终被允许
  • 方法的getText()是未定义的类型查看

我真的不知道该怎么做来解决这些问题。我对Java和Android编程非常陌生,请详细解释它。我会把整个项目放在这里,但我不太清楚如何打包并放在这里。 (就像我说的,我是一个新手)。提前致谢。

package com.android.hellolistview; 


import android.app.ListActivity; 
import android.os.Bundle; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.TextView; 
import android.widget.Toast; 

public class HelloListView extends ListActivity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 



     setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, COUNTRIES)); 

     ListView lv = getListView(); 
     lv.setTextFilterEnabled(true); 

     lv.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, TextView view, 
      int position, long id) { 
      // When clicked, show a toast with the TextView text 
      Toast.makeText(getApplicationContext(), ((TextView) view).getText(), 
       Toast.LENGTH_SHORT).show(); 
     } 
     }); 
    } 

private void setListAdapter(ArrayAdapter<String> arrayAdapter) { 
    // TODO Auto-generated method stub 

} 
    static final String[] COUNTRIES = new String[] { 
     "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra", 
     "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina", 
     "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan", 
     "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium", 
     "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia", 
     "Bosnia and Herzegovina", "Botswana", "Bouvet Island", "Brazil", "British Indian Ocean Territory", 
     "British Virgin Islands", "Brunei", "Bulgaria", "Burkina Faso", "Burundi", 
     "Cote d'Ivoire", "Cambodia", "Cameroon", "Canada", "Cape Verde", 
     "Cayman Islands", "Central African Republic", "Chad", "Chile", "China", 
     "Christmas Island", "Cocos (Keeling) Islands", "Colombia", "Comoros", "Congo", 
     "Cook Islands", "Costa Rica", "Croatia", "Cuba", "Cyprus", "Czech Republic", 
     "Democratic Republic of the Congo", "Denmark", "Djibouti", "Dominica", "Dominican Republic", 
     "East Timor", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea", 
     "Estonia", "Ethiopia", "Faeroe Islands", "Falkland Islands", "Fiji", "Finland", 
     "Former Yugoslav Republic of Macedonia", "France", "French Guiana", "French Polynesia", 
     "French Southern Territories", "Gabon", "Georgia", "Germany", "Ghana", "Gibraltar", 
     "Greece", "Greenland", "Grenada", "Guadeloupe", "Guam", "Guatemala", "Guinea", "Guinea-Bissau", 
     "Guyana", "Haiti", "Heard Island and McDonald Islands", "Honduras", "Hong Kong", "Hungary", 
     "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "Israel", "Italy", "Jamaica", 
     "Japan", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Kuwait", "Kyrgyzstan", "Laos", 
     "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg", 
     "Macau", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands", 
     "Martinique", "Mauritania", "Mauritius", "Mayotte", "Mexico", "Micronesia", "Moldova", 
     "Monaco", "Mongolia", "Montserrat", "Morocco", "Mozambique", "Myanmar", "Namibia", 
     "Nauru", "Nepal", "Netherlands", "Netherlands Antilles", "New Caledonia", "New Zealand", 
     "Nicaragua", "Niger", "Nigeria", "Niue", "Norfolk Island", "North Korea", "Northern Marianas", 
     "Norway", "Oman", "Pakistan", "Palau", "Panama", "Papua New Guinea", "Paraguay", "Peru", 
     "Philippines", "Pitcairn Islands", "Poland", "Portugal", "Puerto Rico", "Qatar", 
     "Reunion", "Romania", "Russia", "Rwanda", "Sqo Tome and Principe", "Saint Helena", 
     "Saint Kitts and Nevis", "Saint Lucia", "Saint Pierre and Miquelon", 
     "Saint Vincent and the Grenadines", "Samoa", "San Marino", "Saudi Arabia", "Senegal", 
     "Seychelles", "Sierra Leone", "Singapore", "Slovakia", "Slovenia", "Solomon Islands", 
     "Somalia", "South Africa", "South Georgia and the South Sandwich Islands", "South Korea", 
     "Spain", "Sri Lanka", "Sudan", "Suriname", "Svalbard and Jan Mayen", "Swaziland", "Sweden", 
     "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "The Bahamas", 
     "The Gambia", "Togo", "Tokelau", "Tonga", "Trinidad and Tobago", "Tunisia", "Turkey", 
     "Turkmenistan", "Turks and Caicos Islands", "Tuvalu", "Virgin Islands", "Uganda", 
     "Ukraine", "United Arab Emirates", "United Kingdom", 
     "United States", "United States Minor Outlying Islands", "Uruguay", "Uzbekistan", 
     "Vanuatu", "Vatican City", "Venezuela", "Vietnam", "Wallis and Futuna", "Western Sahara", 
     "Yemen", "Yugoslavia", "Zambia", "Zimbabwe" 
     };} 
+0

你在哪里放置COUNTRIES字符串数组? – 2010-08-28 00:55:37

回答

0
Toast.makeText(getApplicationContext(), ((View) view).getText() 

应该

Toast.makeText(getApplicationContext(), ((TextView) view).getText() 

View类没有实现的getText方法,而TextView的扩展视图,并实现了gettext方法。在你的代码中,你将视图转换为视图,这实际上并没有做任何事情。它需要被转换为TextView才能正常工作。

我在想你可能会把你的COUNTRIES字符串数组也放在错误的地方。

如果仍无法修复,请将所有HelloListView代码粘贴到您的问题中。

此外,这可能是你一个良好的阅读:http://developer.android.com/guide/topics/ui/index.html

+0

非常感谢。我移动了下面我称之为的国家,而且没有任何错误。但是,当我将它加载到模拟器中并运行应用程序时,它是一个空白屏幕。你怎么看?我将代码添加到问题中。 – 2010-08-28 04:47:04

0

观点不是方法的getText(),TextView的有方法的getText(),TextView的扩展视图, 所以你的代码必须想:

Toast.makeText(getApplicationContext(), ((TextView) view).getText()); 

您必须阅读android SDK的api。

0

该数组的代码应该在onCreate方法之后。

1

我也有一个模拟器的问题。我得到了“应用程序意外停止...”的消息。

我有同样的行你:

public class HelloListView extends ListActivity { 

在我HelloListView清单,我有以下行:

<activity android:name=".HelloListViewActivity" 

当我把它改为:

<activity android:name=".HelloListView" 

的应用程序开始在模拟器中工作。将该类重命名为HelloListViewActivity也可能执行相同的技巧。还没有尝试过...

0

改变这样的:公共类HelloListView延伸活动{ 到:公共类HelloListView扩展ListActivity { 并添加: 查看源代码 打印?

1 import android.widget.ArrayAdapter; 
2 import android.app.ListActivity;