2013-05-22 5 views
1

Прямо сейчас я пытаюсь создать действие с помощью EditText и кнопки, а ниже, что listview я могу динамически добавлять строки в список. Я получаю ошибки, пытаясь макетировать свою деятельность.

Вот моя основная деятельность.

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: Идентификатор ресурса # 0x0 05-22 00: 31: 09.657: E/AndroidRuntime (23598): \t на android.content.res.Resources.getValue (Resources.java:1026) 05-22 00: 31: 09.657: E/AndroidRuntime (23598): \t на 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, где вы можете заселить значение (String) в макет.

Вы можете использовать макет андроида рамки, которая android.R.layout.simple_list_item_1

adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, listItems); 
Смежные вопросы