2013-05-22 169 views
1

现在我正在尝试使用EditText和一个按钮创建一个活动,并且在该列表下方我可以动态添加字符串到列表中。我在尝试模拟我的活动时遇到错误。

这是我的主要活动。

public class MainActivity extends Activity { 

private Connection serverConnection; 
private ArrayList<String> listItems = new ArrayList<String>(); 
private ArrayAdapter<String> adapter; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


    ListView listview = (ListView) findViewById(R.id.list); 
    adapter = new ArrayAdapter<String>(MainActivity.this, 0, listItems); 
    listview.setAdapter(adapter); 
    serverConnection = new Connection(MainActivity.this); 

} 



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

public void displayMessage(String string) { 
    listItems.add(string); 
    adapter.notifyDataSetChanged(); 

} 

} 

下面是主要活动的XML。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context=".MainActivity" > 

<EditText 
    android:id="@+id/message_entry" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/list" 
    android:layout_toLeftOf="@+id/send_button" 
    android:layout_weight="1" 
    android:hint="@string/enter_message" /> 

    <ListView 
     android:id="@+id/list" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_below="@+id/message_entry" 
     android:paddingTop="10dp" /> 

    <Button 
     android:id="@+id/send_button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@+id/message_entry" 
     android:layout_alignRight="@+id/list" 
     android:layout_alignTop="@+id/message_entry" /> 

</RelativeLayout> 

这里是我的,我要用来连接到插座其他类。

public class Connection extends Thread { 

private Socket client; 
private ObjectOutputStream output; 
private ObjectInputStream input; 

public Connection(MainActivity mainActivity) { 


    mainActivity.displayMessage("Test1"); 
    mainActivity.displayMessage("Test2");  
    mainActivity.displayMessage("Test3"); 
    mainActivity.displayMessage("Test4"); 
    mainActivity.displayMessage("Test5"); 


} 
} 
+0

05-22 00:31:09.657:E/AndroidRuntime(23598):致命异常:主 05-22 00:31:09.657 :E/AndroidRuntime(23598):android.content.res.Resources $ NotFoundException:资源ID#0x0 05-22 00:31:09.657:E/AndroidRuntime(23598):\t at android.content.res.Resources.getValue (Resources.java:1026) 05-22 00:31:09.657:E/AndroidRuntime(23598):\t at android.content.res.Resources.loadXmlResourceParser(Resources.java:2131) 05-22 00:31: 09.657:E/AndroidRuntime(23598):\t at android.content.res.Resources.getLayout(Resources.java:865) – Collin

+0

构建项目时出错。尝试删除bin和gen文件夹并清理构建。 –

+0

清理您的项目并再试一次... –

回答

5

此行给你一个错误

adapter = new ArrayAdapter<String>(MainActivity.this, 0, listItems); 

第二参数接受布局RESOURCEID在这里可以填充值(字符串)的布局。

可以使用Android框架的布局是android.R.layout.simple_list_item_1

adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, listItems); 
相关问题