2012-04-24 125 views
0

你好,我有一個畫廊,其中有2個圖像。我希望每次我將圖像更改爲我的佈局中的textview以更改其名稱。在我的代碼中,它只發生在第一次,並保持這種狀態。圖片更改textview更新

public class BrowseActivity extends Activity { 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.browse_activity_layout); 

    Gallery gallery = (Gallery) findViewById(R.id.browseActivityGallery); 
    gallery.setAdapter(new ImageAdapter(this)); 
    gallery.setSpacing(0); 
} 
public class ImageAdapter extends BaseAdapter { 
    int mGalleryItemBackground; 
    private Context mContext; 

    private Integer[] mImageIds = { 

      R.drawable.building_a, 
      R.drawable.building_b, 

    }; 

    public ImageAdapter(Context c) { 
     mContext = c; 
     TypedArray attr = mContext.obtainStyledAttributes(R.styleable.browseActivityGalleryStylable); 
     attr.recycle(); 
    } 

    public int getCount() { 

     return mImageIds.length; 
    } 

    public Object getItem(int position) { 
     return position; 
    } 

    public long getItemId(int position) { 
     return position; 
    } 

    public View getView(int position, View convertView, ViewGroup parent) { 
     TextView browseActivityTitleTextView = (TextView)findViewById(R.id.browseActivityTitleTextView); 

      if(position == 0){ 
       browseActivityTitleTextView.setText(" Α'"); 
      } 
      if(position == 1){ 
       browseActivityTitleTextView.setText(" Β'"); 
      }   

     ImageView imageView = new ImageView(mContext); 
     imageView.setImageResource(mImageIds[position]); 
     imageView.setScaleType(ImageView.ScaleType.FIT_XY); 
     return imageView; 
    } 
} 
} 

當我刷卡它改變到B的畫廊「因爲它應該,但是當我回到刷卡它停留B」 任何人知道如何解決這一問題?

回答

1

而不是從BaseAdapter中更改文本,您應該添加一個偵聽器並改變它。您還應該在onCreate方法中找到對textview的引用。

private TextView browseActivityTitleTextView; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.browse_activity_layout); 

browseActivityTitleTextView = (TextView)findViewById(R.id.browseActivityTitleTextView); 

Gallery gallery = (Gallery) findViewById(R.id.browseActivityGallery); 
gallery.setAdapter(new ImageAdapter(this)); 
gallery.setSpacing(0); 

gallery.setOnItemSelectedListener(new OnItemSelectedListener() { 

     @Override 
     public void onItemSelected(AdapterView<?> arg0, View arg1, 
       int position, long arg3) {    

      switch(position){ 
      case 0: 
       browseActivityTitleTextView.setText(" Α'"); 
       break; 
      case 1: 
       browseActivityTitleTextView.setText(" B'"); 
       break; 
      } 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> arg0) {} 
    }); 

} 
+0

感謝您的幫助,工作正常。 – 2012-04-24 14:27:00