У меня есть следующая настройка экрана в Android.Кнопка на экране1, при нажатии которой вы попадаете на экран2.Screen2 имеет 2 кнопки в нижней части экрана.Одна кнопка отображает доступный для поиска listView, а другая возвращает вас на экран1.Код для screen1:
screen1.java
package com.example.screenchange;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
public class ScreenChange extends Activity {
/** Called when the activity is first created. */
private Button button01;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button01 = (Button)findViewById(R.id.button01);
button01.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.v(this.toString(), "Inside on click listener for screen 2.");
Intent intent = new Intent(v.getContext(), screen2.class);
Log.v(this.toString(), "Intent created. Moving to start activity.");
startActivity(intent);
}
});
}
}
screen1.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:id="@+id/button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Move to screen 2"
/>
</LinearLayout>
Screen2.java:
package com.example.screenchange;
import java.util.ArrayList;
import java.util.List;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
public class screen2 extends ListActivity {
private Button button02;
private Button button03;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.screen2);
button02 = (Button)findViewById(R.id.button02);
button02.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.v(this.toString(), "Button02 clicked.");
Intent intent = new Intent(); //takes control back to screen1.
finish();
}
});
button03 = (Button)findViewById(R.id.button03);
button03.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.v(this.toString(), "Button03 clicked.");
ArrayAdapter<String> listView = new ArrayAdapter<String>(v.getContext(), R.layout.listview, COUNTRIES);
setListAdapter(listView);
getListView().setTextFilterEnabled(true);
}
});
}
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"
}
screen2.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="Welcome to screen 2">
<Button
android:id="@+id/button02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Get back to screen 1."
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:clickable="true">
</Button>
<Button
android:id="@+id/button03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:text="Display countries."
android:clickable="true">
</Button>
<ListView
android:id="@+android:id/android:list"
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:text="@id/text1">
</ListView>
</RelativeLayout>
listview.xml:
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/text1">
</TextView>
android-manifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.screenchange"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".ScreenChange"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".screen2"
android:label="Screen 2 - New actvity.">
</activity>
</application>
</manifest>
Проблемы, с которыми я сталкиваюсь, следующие:
1. Кнопки на экране2 перестают отвечать на запросыЯ переключаюсь на screen2.Нет вывода на logcat, нет ничего.
2. Могут даже быть ошибки при отображении списка, но я не могу его увидеть.
Любая помощь приветствуется,
Шрирам.