2013-08-20 2 views
2

안녕하세요, 나는 상대적 레이아웃이며 9 개의 이미지 버튼을 포함하고있는 m 파일을 가지고 있습니다. 그래서 이름과 ID를 변경하여 레이아웃을 여러 번 재사용하고 싶습니다. gridview로 할 수 있지만 내 문제는 상대 레이아웃을 사용하는 동일한 세관 디자인을 사용하고 싶습니다. 그래서 어떻게 할 수 있습니다.안드로이드에서 내 xml 상대 레이아웃을 다시 사용하는 방법

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <ImageButton 
     android:id="@+id/day0" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignTop="@+id/day1" 
     android:layout_marginLeft="14dp" 
     android:scaleType="fitXY" 
     android:src="@drawable/day0" /> 

    <ImageButton 
     android:id="@+id/day3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/day0" 
     android:layout_below="@+id/day0" 
     android:layout_marginTop="54dp" 
     android:src="@drawable/day3" /> 

    <ImageButton 
     android:id="@+id/day6" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/day3" 
     android:layout_below="@+id/day3" 
     android:layout_marginTop="74dp" 
     android:src="@drawable/day6" /> 

    <ImageButton 
     android:id="@+id/day4" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/day6" 
     android:layout_marginLeft="25dp" 
     android:layout_toRightOf="@+id/day3" 
     android:src="@drawable/day4" /> 

    <ImageButton 
     android:id="@+id/day7" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/day4" 
     android:layout_alignTop="@+id/day6" 
     android:src="@drawable/day7" /> 

    <ImageButton 
     android:id="@+id/day1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/day4" 
     android:layout_alignParentTop="true" 
     android:layout_marginTop="39dp" 
     android:scaleType="fitXY" 
     android:src="@drawable/day1" /> 

    <ImageButton 
     android:id="@+id/day8" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/day5" 
     android:layout_alignTop="@+id/day7" 
     android:src="@drawable/day8" /> 

    <ImageButton 
     android:id="@+id/day2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignTop="@+id/day1" 
     android:layout_marginLeft="28dp" 
     android:layout_toRightOf="@+id/day1" 
     android:scaleType="fitXY" 
     android:src="@drawable/day2" /> 

    <ImageButton 
     android:id="@+id/day5" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/day6" 
     android:layout_alignLeft="@+id/day2" 
     android:src="@drawable/day5" /> 

    <TextView 
     android:id="@+id/textView5" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/textView4" 
     android:layout_alignBottom="@+id/textView4" 
     android:layout_alignLeft="@+id/day7" 
     android:text="Emotions" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <TextView 
     android:id="@+id/textView8" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@+id/textView7" 
     android:layout_alignLeft="@+id/Ans6b" 
     android:text="Leadership" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <TextView 
     android:id="@+id/Ans6b" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/question6a" 
     android:layout_alignBottom="@+id/question6a" 
     android:layout_alignRight="@+id/day1" 
     android:text="gruppstart" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <TextView 
     android:id="@+id/textView4" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/day3" 
     android:layout_toLeftOf="@+id/day4" 
     android:text="Adaption" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <TextView 
     android:id="@+id/textView7" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/day6" 
     android:layout_toLeftOf="@+id/day4" 
     android:text="Behavior" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <TextView 
     android:id="@+id/textView9" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/textView3" 
     android:layout_below="@+id/day8" 
     android:text="Satisfaction" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <TextView 
     android:id="@+id/textView6" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignRight="@+id/day5" 
     android:layout_below="@+id/day5" 
     android:text="Insight" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <TextView 
     android:id="@+id/textView3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/day2" 
     android:layout_below="@+id/day2" 
     android:text="relationer" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <TextView 
     android:id="@+id/question6a" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/textView7" 
     android:layout_below="@+id/day0" 
     android:layout_marginLeft="15dp" 
     android:text="Goal" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <TextView 
     android:id="@+id/username" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_toLeftOf="@+id/textView3" 
     android:text="Medium Text" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 


</RelativeLayout> 

이것은 내 xml 파일입니다. 다른 활동에 대해이 XML 파일을 호출하고 싶지만 이름 ID 및 일부 디스플레이 이미지 버튼 만 변경하면됩니다. 수행하는 방법에 그 중 하나가 나를

import java.io.IOException; 
import java.io.InputStream; 
import java.io.OutputStream; 
import java.util.ArrayList; 
import java.util.HashMap; 

import com.xylem.flygt.R; 

import android.os.AsyncTask; 
import android.os.Bundle; 
import android.app.Activity; 
import android.app.ProgressDialog; 
import android.util.Log; 
import android.view.KeyEvent; 
import android.view.Menu; 
import android.view.View; 
import android.view.ViewGroup; 
import android.view.animation.AccelerateInterpolator; 
import android.view.animation.Animation; 
import android.view.animation.TranslateAnimation; 
import android.widget.BaseAdapter; 
import android.widget.Button; 
import android.widget.ImageButton; 
import android.widget.ImageView; 
import android.widget.ListAdapter; 
import android.widget.TableLayout; 
import android.widget.TextView; 
import android.widget.Toast; 
import android.widget.ViewFlipper; 

import android.content.Context; 
import android.content.Intent; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.graphics.Color; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.GridView; 

public class MenuActivity extends Activity 
{ 

    static GridView gridView; 

    Bitmap bmp = null; 
    public ArrayList<Bitmap> bitmapArray = new ArrayList<Bitmap>(); 

    Context context; 
    ImageButton day0, day1, day2, day3, day4, day5, day6, day7, day8; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.grid_layout); 

     day0 = (ImageButton) findViewById(R.id.day0); 
     day1 = (ImageButton) findViewById(R.id.day1);  
     day2 = (ImageButton) findViewById(R.id.day2); 
     day3 = (ImageButton) findViewById(R.id.day3); 
     day4 = (ImageButton) findViewById(R.id.day4); 
     day5 = (ImageButton) findViewById(R.id.day5); 
     day6 = (ImageButton) findViewById(R.id.day6); 
     day7 = (ImageButton) findViewById(R.id.day7); 
     day8 = (ImageButton) findViewById(R.id.day8); 

     gridView = (GridView) findViewById(R.id.grid_view); 
     gridView.setBackgroundColor(Color.parseColor("#E3E4FA")); 
     gridView.setOnItemClickListener(new OnItemClickListener() 
     { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View v, int position, long id) 
      { 
       System.out.println("Clicked id " + position); 

       if(position == 0) 
       { 
        System.out.println(" Day 0 "); 


       } 

       if(position == 1)    { 

        Intent i = new Intent(getApplicationContext(), nextActivity.class);   
        i.putExtra("dayno", "1"); 
        System.out.println(" Day 1 "); 
        startActivity(i); 

       } 

       if(position == 2) 
       { 
        Intent i = new Intent(getApplicationContext(), nextActivity.class);   
        i.putExtra("dayno", "2"); 
        System.out.println(" Day 2 "); 
        startActivity(i); 
       } 

       if(position == 3) 
       { Intent i = new Intent(getApplicationContext(), nextActivity.class);   
        i.putExtra("dayno", "3"); 
        System.out.println(" Day 3 "); 
        startActivity(i); 
       } 

       if(position == 4) 
       { 
        Intent i = new Intent(getApplicationContext(), nextActivity.class);   
        i.putExtra("dayno", "4"); 
        System.out.println(" Day 4 ");   
        startActivity(i); 
       } 

       if(position == 5) 
       { 
        Intent i = new Intent(getApplicationContext(), nextActivity.class);   
        i.putExtra("dayno", "5"); 
        System.out.println(" Day 5 ");    
        startActivity(i); 
       }  

       if(position == 6) 
       { 
        Intent i = new Intent(getApplicationContext(), nextActivity.class);   
        i.putExtra("dayno", "6"); 
        System.out.println(" Day 6"); 
        startActivity(i); 
       } 

       if(position == 7) 
       { 
        Intent i = new Intent(getApplicationContext(), nextActivity.class);   
        i.putExtra("dayno", "7"); 
        System.out.println(" Day 7 "); 
        startActivity(i); 
       } 

       if(position == 8) 
       { 
        Intent i = new Intent(getApplicationContext(), nextActivity.class);   
        i.putExtra("dayno", "8"); 
        System.out.println(" Day 8 "); 
        startActivity(i); 
       }    
      } 
     }); 

     new Checkday().execute(); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) 
    { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

    class Checkday extends AsyncTask<String, String, String> 
    { 
       protected void onPreExecute() 
       { 
        super.onPreExecute(); 
       } 

       @Override 
       protected String doInBackground(String... arg0) 
       { 
        return null; 
       } 

       protected void onPostExecute(String file_url) 
       { 
          gridView.setAdapter(new CalenderAdaptor(MenuActivity.this)); 
       } 
     } 
    } 

내 활동 자바 그 자체가있는 gridview에 이미지 버튼을 만듭니다 작성한 제안하십시오 수 있습니다. 하지만 이런 식으로 레이아웃을 ID 만 변경하고 일부 이미지는 바뀌기 때문에 다른 액티비티에서 내 세관 레이아웃을 호출하는 방식으로 사용하고 싶습니다.

+1

코드와 오류가 표시됩니다. – LuckyMe

+0

왜 ID를 변경 하시겠습니까? 무엇을 정확히 달성하기를 원합니 까? 너 뭐 해봤 니? 몇 가지 코드를 보여주십시오. 우리는 당신을위한 코드를 작성하지 않습니다! – Leandros

+0

여러 활동에 동일한 레이아웃 유형을 사용하기 때문에 변경 ID가 필요합니다. 그래서 그것을 변경하는 것이지만 내 문제는 내가 원하는대로 그것을 재사용 할 수없는 설계된 레이아웃이다. – user2614247

답변

4

내가 이해한다면 버튼이있는 맞춤 디자인 레이아웃이 있으며 다른 레이아웃에서도이 레이아웃을 사용하고 싶습니다.

이름을 바꿀 필요가 없습니다. 레이아웃을 별도의 XML에 넣으면됩니다 (CommonButtonLayout.xml). 다음과 같이 포함해야합니다 :

<?xml version="1.0" encoding="utf-8"?> 
<merge xmlns:android="http://schemas.android.com/apk/res/android" > 

.... your layout ..... 

</merge> 

이제 다른 레이아웃 파일에서 사용하고 싶습니다. 이 xml을 다음과 같이 직접 포함시켜야합니다.

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    ... 
    ... 
    > 

    <include 
     android:layout_centerVertical="true" 
     layout="@layout/CommonButtonLayout" /> 
</RelativeLayout> 
+1

아니요 다른 활동에서 ID를 변경하여 XML 레이아웃을 사용하고 싶습니다. – user2614247

관련 문제