Ответы пользователя по тегу Android
  • Переход между Activity в ActivityGroup(в табах)?

    Pyjamec
    @Pyjamec Автор вопроса
    Обещанный код:
    CategoryAdapter полностью:
    public class CategoryAdapter extends ArrayAdapter {

    private List _items;

    public CategoryAdapter(Context context, int textViewResourceId,
    List items) {
    super(context, textViewResourceId, items);
    _items = items;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
    View v = convertView;
    if (v == null) {
    LayoutInflater vi = (LayoutInflater) getContext().getSystemService(
    Context.LAYOUT_INFLATER_SERVICE);
    v = vi.inflate(R.layout.list_item_layout, null);
    v.destroyDrawingCache();
    }

    Category cat = _items.get(position);
    if (cat != null) {
    TextView listText = (TextView) v.findViewById(R.id.list_text);
    listText.setText(cat.getName());
    }
    return v;
    }

    @Override
    public Category getItem(int position) {
    return _items.get(position);
    }
    }

    Отсюда(таб) мы начинаем переход:
    public class RecipeTab extends ActivityGroup {

    private ListView _lv;

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

    setContentView(R.layout.recipe_tab);

    List cats = Category.getAllCategories(this);
    _lv = (ListView)findViewById(android.R.id.list);
    _lv.setAdapter(new CategoryAdapter(getBaseContext(),R.layout.list_item_layout, cats));
    _lv.setOnItemClickListener(new ListClickListener());
    }

    public void replaceContentView(String id, Intent newIntent/*,int result*/) {
    View view = getLocalActivityManager().startActivity(id,newIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
    .getDecorView();
    this.setContentView(view);
    }
    ...


    код обработчика при нажатии на элемент списка:

    private class ListClickListener implements ListView.OnItemClickListener {

    public void onItemClick(AdapterView parent, View v, int position, long l){
    Category selectedItem = (Category)_lv.getItemAtPosition(position);
    int catId = selectedItem.getId();
    Intent intent = new Intent(RecipeTab.this,CategoryActivity.class);
    Bundle bundle = new Bundle();
    bundle.putInt("catId", catId);
    intent.putExtras(bundle);
    replaceContentView("categoryActivity", intent);
    }
    }
    ...
    }

    В данный активити мы переходим и потом обратно на RecipeTab
    public class CategoryActivity extends Activity{

    private ListView _lv;
    private Button _btBack;
    private LocalActivityManager lam;
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

    setContentView(R.layout.category_activity_layout);
    _btBack = (Button)findViewById(R.id.back_to_cats_button);
    _btBack.setOnClickListener(new BackButtonListener());

    List recps = Recipe.getRecipesByCatId(this, catId);

    _lv = (ListView)findViewById(android.R.id.list);
    _lv.setAdapter(new RecipeAdapter(getBaseContext(),R.layout.recipe_list_item, recps));
    }

    и код обработчика:
    class BackButtonListener implements View.OnClickListener {
    public void onClick(View v){
    Intent intent = new Intent(v.getContext(), RecipeTab.class);
    RecipeTab parentActivity = (RecipeTab)getParent();
    parentActivity.replaceContentView("recipeTab", intent);
    }
    }

    Код лэйаутов для CategoryAcivity и элемента списка находится в вопросе выше.
    По-моему, много букв получилось, так что остальное по требованию.
    Кстать, кнопка назад в эмуляторе почему-то переходит не на предидущий активити, а на рабочий стол.
    Почему так?
    Ответ написан
    Комментировать
  • Смена иконки в tab-ах(Android)?

    Pyjamec
    @Pyjamec Автор вопроса
    android_menu_button.xml:
    <?xml version="1.0" encoding="UTF-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
    android:drawable="@drawable/recipe_tab_menu_"
    android:state_selected="true"
    android:state_pressed="false"
    android:color="#ffffff"/>

    <item android:drawable="@drawable/recipe_tab_menu" />


    MainActivity.java:

    Resources res = getResources(); tabRecipeTabSpec.setIndicator("",res.getDrawable(R.drawable.android_menu_button) ).setContent(new Intent(this,RecipeTab.class));

    файлы recipe_tab_menu_.png, recipe_tab_menu.png лежат в drawable-hdpi. В чем может быть проблема?

    Ответ написан
    7 комментариев
  • Смена иконки в tab-ах(Android)?

    Pyjamec
    @Pyjamec Автор вопроса
    Не поверите, вот только эти и еще пару десятков туториалов не помогли. Делал все как там и не работает. Код к сожалению на работе остался…
    Ответ написан
    2 комментария