2013-05-22 203 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); 
相關問題