GridView rechteinbinden

  • 5 Antworten
  • Letztes Antwortdatum
G

guguli

Neues Mitglied
0
Hallo zusammen,

ich möchte ein GridView erstellen, dies soll aber nur rechts angezeigt werden. das soll heißen meine Items sollen nur in einer spalte rechts untereinandern gereiht werden.

Wie muss ich denn meine XML file bzw. den code ändern.

hab im Inet nichts gefunden.

THX
 
wie soll jemanden deinen code ändern, wenn du ihn nicht zeigst ?

eine gridview mit einer spalte wäre aber dann eigentlich eine listview oder?
 
hmm hab ich auch überlegt ob das ein ListView soll. ich poste ma was ich habe :)...
XML
Code:
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical">
  
  
	<GridView
	     android:id="@+id/gridview"
	     android:layout_width="fill_parent"
  		 android:layout_height="fill_parent"
	     android:numColumns="auto_fit"
  		 android:verticalSpacing="10dp"
  		 android:horizontalSpacing="100dp"
  		 android:columnWidth="90dp"
  		 android:stretchMode="columnWidth"
  		 android:gravity="center">
	</GridView>
	
</LinearLayout>

activity java:
Code:
public  class MapActivity extends Activity  {
	
	
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_map);
		
		GridView gv = (GridView)findViewById(R.id.gridview);
		gv.setAdapter(new ImageAdapter(getApplicationContext()));
		gv.setOnItemClickListener(new OnItemClickListener() {

			public void onItemClick(AdapterView<?> parentView, View v, int position,
					long id) {
				Toast.makeText(getApplicationContext(), ""+position,Toast.LENGTH_SHORT).show();
			
			}
		});
			
	}
	      
}

Item anzeigen bzw. hochladen
Code:
public class ImageAdapter extends BaseAdapter {
	
	int[] images={
			R.drawable.yellow, R.drawable.yellow_golden,
	};
	private Context context;
	public ImageAdapter(Context applicationContext) {
	
		context = applicationContext;
	}

	public int getCount() {
		
		return images.length;
	}

	public Object getItem(int position) {
		// TODO Auto-generated method stub
		return null;
	}

	public long getItemId(int position) {
		// TODO Auto-generated method stub
		return 0;
	}

	public View getView(int position, View convertView, ViewGroup parent) {
		ImageView iv;
		if(convertView!= null){
			iv=(ImageView)convertView;
		}
		else
		{
			iv=new ImageView(context);
			iv.setLayoutParams(new GridView.LayoutParams(80,80));
			iv.setScaleType(ScaleType.CENTER_CROP);
			iv.setPadding(8, 8, 8, 8);
		}
		iv.setImageResource(images[position]);
		return iv;
	}

}
 
ok vergessen wir das mit Grid, listvew ist schon richtig. :9

wie kann ich anstelle text in einem ListView farbigen Button reintun????
 
wie tust du den text rein ?

genau so tust auch einen button rein - mal davon ausgegangen, du nutzt schon einen custom adapter
 
Also, ich hab die XML file so geändert.
Code:
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:gravity="right"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/mainListView"
        android:layout_width="82dp"
        android:layout_height="fill_parent" >
       
    </ListView>

</LinearLayout>

und nun will ich Button einfügen als Items. ich hab dann eine exra xml file dafür gemacht:
Code:
<?xml version="1.0" encoding="UTF-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
<Button
        android:id="@+id/rowTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="15pt"
        android:text="1" ></Button>
</LinearLayout>

und mein activity so :
Code:
public  class MapActivity extends Activity  {
	

		private ListView mainListView ;  
		private ArrayAdapter<String> listAdapter ;  
		    
		 
		  @Override  
		  public void onCreate(Bundle savedInstanceState) {  
		    super.onCreate(savedInstanceState);  
		    setContentView(R.layout.activity_map);  
		      
		    // Find the ListView resource.   
		    mainListView = (ListView) findViewById( R.id.mainListView );  
		  
		    // Create and populate a List of planet names.  
		    String[] planets = new String[] { "Mercury", "Venus", "Earth", "Mars",  
		                                      "Jupiter", "Saturn", "Uranus", "Neptune"};    
		    ArrayList<String> planetList = new ArrayList<String>();  
		    planetList.addAll( Arrays.asList(planets) );  
		      
		    // Create ArrayAdapter using the planet list.  
		    listAdapter = new ArrayAdapter<String>(this, R.layout.colors, planetList);  
		      
		    // Add more planets. If you passed a String[] instead of a List<String>   
		    // into the ArrayAdapter constructor, you must not add more items.   
		    // Otherwise an exception will occur.  
		    listAdapter.add( "Ceres" );  
		    listAdapter.add( "Pluto" );  
		    listAdapter.add( "Haumea" );  
		    listAdapter.add( "Makemake" );  
		    listAdapter.add( "Eris" );  
		      
		    // Set the ArrayAdapter as the ListView's adapter.  
		    mainListView.setAdapter( listAdapter );        
		  }  
		 
	}


aber das funktioniert nicht :(
 
Zuletzt bearbeitet:
Zurück
Oben Unten