Итак, у меня проблемы с созданием приложения (закрытие силы), и я думаю, что это связано с тем, как я реализовал макет. Итак, несколько вопросов: во-первых, у меня есть относительный макет, который включает в себя текстовый ввод с кнопкой рядом с ним, просмотр списка (все еще в относительном макете) и еще одну кнопку ниже этого. Это мой основной XML файл:Просмотров Android в макетах
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<EditText
android:id="@+id/edit_choice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/Button1"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@+id/Button1"
android:hint="@string/edit_choice" />
<Button
android:id="@+id/Button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:onClick="addString"
android:text="@string/button_add" />
<Button
android:id="@+id/Button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="22dp"
android:text="@string/button_random" />
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/Button2"
android:layout_alignParentLeft="true"
android:layout_below="@+id/Button1"
tools:listitem="@android:layout/simple_list_item_1" >
</ListView>
</RelativeLayout>
Прежде, чем я даже изменил что-нибудь в файлах .java, когда я попытался запустить это, только появились ввод текста и 2 кнопки и тема изменена с Хол на Хол свет. Поэтому мне интересно, работает ли это, я видел только примеры, когда представление списка полностью совпадает с родительским макетом.
Мой второй вопрос заключается в том, как я могу обработать использование ввода для добавления значений в представление списка, могу ли я сделать это в основном классе активности или у меня есть другой класс для обработки представления списка и по-прежнему ссылаться на основной макет.
Это мой Основной класс:
public class MainActivity extends Activity
{
public ArrayList <String> choices = new ArrayList <String>();
public ListView listView = (ListView) findViewById(R.id.listView1);
public String [] choicesArray;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listView = (ListView) findViewById(R.id.listView1);
choicesArray = new String [] {"You have not entered a choice yet"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, android.R.id.text1, choicesArray);
listView.setAdapter(adapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
//adds the string to the list
public void addString(View view)
{
choicesArray = (String[]) choices.toArray();
EditText editText = (EditText) findViewById(R.id.edit_choice);
String message = editText.getText().toString();
choices.add(message);
}
}
Надеется, что это имеет смысл и спасибо за любую помощь.
Можете ли вы опубликовать лог-кошку силы? –