Как надуть еще один xml при нажатии на кнопку

1

У меня есть один Activity в том, что нет Button, но я закодировал его таким образом, что появился еще один Activity, теперь на этом втором Activity есть три Button s, на которых когда я нажимаю на все раздувающие разные действия. В этом втором Activity там я добавил еще один Button, при нажатии этого 4-го Button я не хочу, чтобы другой Activity появился на переднем плане, вместо этого я просто хочу, чтобы другой макет был завышен (я не хотите изменить Activity) В этом макете (который мне нужно раздуть) у меня есть ListView, который имеет список определенных сайтов, когда этот макет раздувается, список сайтов должен быть показан, и когда я нажимаю на сайты, он должен забрать меня на эту веб-страницу.

ПРОБЛЕМА 1: Как раздуть только xml при щелчке 4-го Button без изменения Activity.

ПРОБЛЕМА 2: Когда xml раздувается, и если я нажимаю на BackButton, то должен отображаться Activity, содержащий все 4 Button.

Вот код, который я использую, чтобы раздуть еще один xml:

fourthButton.setOnClickListener(new OnClickListener(){
    @Override
    public void onClick(View v) {
        callingMore();
    }
});
private void callingMore() {
    LayoutInflater inflater = getLayoutInflater();
    View layout = inflater.inflate(R.layout.web_site_list_xml, (ViewGroup)findViewById(R.id.site_list));
}

НО этот код дает силу близко, а xml раздувается, и если я использую метод setContentView( R.layout.web_site_list_xml) внутри callingMore() xml раздувается, но xml ничего не отображает, а затем, если я ударил BackButton, Activity, который имеет все 4 Button, не отображается.

  • 0
    Добавьте вашу трассировку стека LogCat, чтобы мы могли видеть, что является ошибкой ForceClose.
Теги:
layout
android-layout
layout-inflater

2 ответа

5
Лучший ответ

Я пробовал этот код... надеюсь, вам поможет..

1.layout_existed.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"
    android:id="@+id/existedlayout"
    >
   <Button  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="Clicck to inflate view"
    android:id="@+id/button"
    />
</LinearLayout>   

2.layout_toinfliate.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
  <TextView
  android:id="@+id/mytext"
  android:text="You inflated me..i added to u r layout"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  />
</LinearLayout>

3.LayoutInflateDemo.java

  public class LayoutInflateDemo extends Activity {

    private LinearLayout layoutToAdd;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_existed);
        layoutToAdd = (LinearLayout) findViewById(R.id.existedlayout);

        Button button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                LayoutInflater inflater = LayoutInflater
                        .from(getApplicationContext());
                View view = inflater.inflate(R.layout.layout_toinfliate, null);
                layoutToAdd.addView(view);

            }
        });
    }
}
  • 0
    в задаче 1 вы попросили, не меняя действия, раздувать только xml.if если вы сделали это ... проблема 2 не поднимается ..
  • 0
    Большое спасибо, сэр, он работает, но старый макет все еще существует, я хочу, чтобы старый макет перешел на задний план, и этот новый макет, надутый мной, должен быть единственным макетом, над которым я могу работать ... например, нажав на ссылки на сайте и все ... пожалуйста, помогите
Показать ещё 2 комментария
-1

Попробуйте использовать v.findViewByID()..

Пропустить View v в callMore()

  • 0
    извините, сэр, но я не могу понять, я немного новичок в Android любезно разработано.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню