2014-03-26 5 views
1

다양한 정보가 포함 된 이미지를 업로드하는 앱을 만들고 있습니다. 나는 전화 갤러리에서 이미지를 얻을 수 있고 나는 폼을 채울 수있는 슬라이더를 만들었다. 형태에서 나는 회와 텍스트 뷰를 사용하고 내 레이아웃은 다음과 같습니다Spinner에서 값 가져 오기

details.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" 
    android:orientation="vertical" > 

    <android.support.v4.view.ViewPager 
     android:id="@+id/pager" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" /> 

</LinearLayout> 

layout_fullscreen_image.xml

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

    <ImageView 
     android:id="@+id/imgDisplay" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_marginBottom="100dp" 
     android:scaleType="fitCenter" /> 

    <Spinner 
     android:id="@+id/sizes" 
     android:layout_width="80dp" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_marginBottom="69dp" /> 

    <EditText 
     android:id="@+id/editText1" 
     android:layout_width="60dp" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@+id/sizes" 
     android:layout_toRightOf="@+id/sizes" 
     android:text="1" 
     android:inputType="number" 
     android:digits="" 
     android:ems="10" /> 

    <TextView 
     android:id="@+id/tvSizes" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/sizes" 
     android:layout_alignParentLeft="true" 
     android:text="Size" /> 

    <TextView 
     android:id="@+id/tvPieces" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/sizes" 
     android:layout_alignLeft="@+id/editText1" 
     android:text="Piece/s" /> 

</RelativeLayout> 

과 작업 표시 줄 :

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

    <item 
     android:id="@+id/action_add_to_cart" 
     android:icon="@drawable/cart" 
     android:title="@string/cart" 
     android:showAsAction="ifRoom"/> 

    <item android:id="@+id/action_settings" 
      android:title="@string/action_settings" 
      android:showAsAction="never" /> 


</menu> 

나는 이미지를 슬라이더로 보여주는 ImageAdapter를 가지고 있는데, layout_fullscreen_image.xml과 방법 :

@Override 
public Object instantiateItem(ViewGroup container, int position) { 
    ImageView imgDisplay; 
    Button btnClose; 

    sizes = new ArrayList<String>(); 
    sizes.add("3x4"); 
    sizes.add("4x6"); 
    sizes.add("5x8"); 

    inflater = (LayoutInflater) _activity 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View viewLayout = inflater.inflate(R.layout.layout_fullscreen_image, container, 
      false); 

    imgDisplay = (ImageView) viewLayout.findViewById(R.id.imgDisplay); 

    Spinner mSpinner = (Spinner) viewLayout.findViewById(R.id.sizes); 

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this._activity, android.R.layout.simple_spinner_item, sizes); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    mSpinner.setAdapter(adapter); 


    BitmapFactory.Options options = new BitmapFactory.Options(); 
    options.inPreferredConfig = Bitmap.Config.ARGB_8888; 
    Bitmap bitmap = BitmapFactory.decodeFile(_imagePaths.get(position), options); 
    imgDisplay.setImageBitmap(bitmap); 

    ((ViewPager) container).addView(viewLayout); 

    return viewLayout; 
} 

및 메인 클래스 Details.java

public class Details extends Activity{ 

    private ArrayList<String> selectedItems; 
    private FullScreenImageAdapter adapter; 
    private ViewPager viewPager; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.details); 
     Bundle b = getIntent().getExtras(); 
     selectedItems = (ArrayList<String>)b.getStringArrayList("selectedItems"); 

     Log.d("selectedItems",selectedItems.toString()); 

     viewPager = (ViewPager) findViewById(R.id.pager); 

     Intent i = getIntent(); 
     int position = i.getIntExtra("position", 0); 

     adapter = new FullScreenImageAdapter(Details.this, selectedItems); 
     viewPager.setAdapter(adapter); 

     viewPager.setCurrentItem(position); 


    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu){ 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.details_action_bar, menu); 
     return super.onCreateOptionsMenu(menu); 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 

     switch(item.getItemId()){ 
      case R.id.action_add_to_cart: 
       UploadImages(); 
       break; 
      default: 
       break; 
     } 

     return super.onOptionsItemSelected(item); 
    } 


    public void UploadImages(){ 
     Spinner spinner = (Spinner) findViewById(R.id.sizes); 
     String temp = spinner.getSelectedItem().toString();  
     Toast.makeText(getApplicationContext(), temp, Toast.LENGTH_LONG).show(); 
    } 

} 

는 무슨 일이다 : 나는 여러 개의 이미지를 선택하면 그것은 나에게 여러 회와 텍스트 뷰를 제공하고, 내가 회 전자와 텍스트 뷰에서 값을 검색하려고 하지만 그것은 나에게 처음 값만을 준다. Spinner 및 textView에 설정된 모든 값을 얻으려면 어떻게해야합니까?

답변

0

하나의 항목 만있는 스피너가 있습니다. r8? 나는 이와 비슷한 코드를 작성했다. 그러나 변경은 다음과 같습니다.

sizes = new ArrayList<String>(); 
sizes.add("3x4"); 
sizes.add("4x6"); 
sizes.add("5x8"); 

문자열 배열을 strings.xml에 추가했습니다. 그것도해볼 수 있니?

+1

아니요. 나는 목록을 잘 얻는다. 그것 같이 : 만약 내가 3 개의 이미지를 선택하면 3 개의 스피너를 제공 할 것이고 3 개의 스피너를 모두 설정할 수는 있지만, 문제는 내가이 3 개의 이미지를 모두 업로드하려고 할 때 얻는 회 전자 값은 항상 3이 아닌 값입니다. 나는 그 모든 3 가지 가치를 원합니다 ... – Robz

+0

당신은 어느 것을 얻고 있습니까? 첫 번째 선택한 하나 또는 마지막으로 선택한 하나? – Aneez

+1

첫 번째 코드 만 가져오고 있습니다 – Robz