запустить новый ListActivity из ListActivity во вкладке

у меня есть вкладка с 4 вкладками, и я использую TabHost для отображения вкладок моего приложения. каждая вкладка заполнена другим классом, наследуемым от ListActivity, и вот код

public class TabbedActivity extends TabActivity {

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tab_layout);

    TabHost tabHost = getTabHost();

    // Tab for Catalog
    TabSpec catalogspec = tabHost.newTabSpec("Catalog");
    catalogspec.setIndicator("Complete Catalog Fall 2012", getResources().getDrawable(R.drawable.ic_catalog));
    Intent catalogIntent = new Intent(this, Category.class);
    catalogspec.setContent(catalogIntent);
// Adding all TabSpec to TabHost
    tabHost.addTab(catalogspec); // Adding catalog tab
}

и этот код с другой целью

public class Category extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {       
    super.onCreate(savedInstanceState);
    setContentView(R.layout.list_of_data);
 Categories = new ArrayList<String>();
    fillListCategories();

    myListItems = new ArrayList<String>();
    adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, Categories);
        this.setListAdapter(adapter);
}}

в Listview есть список элементов, моя точка зрения заключается в том, как настроить Onclick, чтобы открыть другой «ListActivity» на той же вкладке?!!


person omnia Mm    schedule 06.09.2012    source источник
comment
Вы пытались раздуть представление onClick?   -  person fasheikh    schedule 06.09.2012
comment
нет, на самом деле я так свеж в Android, всего 3 недели, не могли бы вы улучшить меня, добавив больше деталей?, я хочу, чтобы вкладка оставалась видимой   -  person omnia Mm    schedule 06.09.2012


Ответы (1)


В классе Category добавьте onClickListener следующим образом:

public class Category extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {       
super.onCreate(savedInstanceState);
setContentView(R.layout.list_of_data);
Categories = new ArrayList<String>();
fillListCategories();

myListItems = new ArrayList<String>();
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,   Categories);
    this.setListAdapter(adapter);
    this.setOnItemClickListener(new AdapterView.OnItemClickListener() {
  @Override
  public void onItemClick( AdapterView<?> parent, View item, 
                           int position, long id) {
    mSelectedCategory = (String)parent.getItemAtPosition(position);

    Intent intent = new Intent(getBaseContext(), ScreenTwo.class); 
            intent.putExtra("name", mSelectedCategory.(WHATEVER INFO YOU NEED ABOUT THE CATEGORY);
            startActivity(intent);  
  }
});
}}

ScreenTwo.java будет выглядеть как класс категории с ListAdapter, но с информацией, которая была передана через намерение:

public class ScreenTwo extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {       
super.onCreate(savedInstanceState);
setContentView(R.layout.list_of_data);
Bundle b = getIntent().getExtras(); 
    String Name = b.getString("name");
Categories = new ArrayList<String>();
fillListCategories();

myListItems = new ArrayList<String>();
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,    Categories);
    this.setListAdapter(adapter);
}}
person fasheikh    schedule 06.09.2012
comment
я пробую это сейчас, но у меня есть другие вопросы, как установить необработанное представление в списке с помощью объекта, имеющего 5 значений, я уже использую адаптер, и когда я использую класс, расширяемый из активности, он работал нормально, но когда я использовал extends listactivity, он ничего не отображал ?? - person omnia Mm; 06.09.2012
comment
извините, я не совсем понимаю ваш вопрос - person fasheikh; 06.09.2012
comment
второе намерение, на которое категория должна перенаправляться, - это представление списка, но элементы списка не являются строками, это объект проекта, этот проект имеет 5 значений, которые я получаю и устанавливаю их значения с помощью класса, и я сейчас заполняю данные с помощью адаптера , как я могу заполнить строки списка данными этого адаптера ??!! - person omnia Mm; 06.09.2012
comment
да, раздувание представления - это представление поверх текущего экрана, поэтому оно будет делать это :( - person fasheikh; 06.09.2012