1

我正在尋找[10] [10]陣列意味着10 TextViews應該垂直顯示和每個各自的垂直TextView的Android水平scrollview將有9更多TextView s將在Horizontal Scrollview ..
我不能創建的網格[10] [10]的水平和垂直scorllview安卓水平滾動視圖與[10] [10]

+0

想創建一個垂直和水平滾動功能的網格? –

+0

@ABFORCE yes..Vertical沒有必要,因爲十垂直textview將進入單一視圖,但水平是.. – user3226440

回答

0

如果必須顯示100組的元素[10] [10]與GridView控件格式,那麼只將100個元素的列表添加到GridView,並限制網格視圖每行僅顯示10個元素。 您可以通過向GridView添加屬性android:numColumns =「10」來設置限制,以顯示連續10個元素。它會自動將元素設置爲[10] [10]格式。

實施例:

1 sample_activity.xml

<GridView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/myGridView" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentLeft="true" 
    android:numColumns="10" /> 

2 item.xml

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

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/grid_item" 
    android:layout_gravity="center" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="default" 
    android:textSize="20sp" 
    android:focusable="false"/> 
</TextView> 

<LinearLayout> 

3 MainActivity

public class MainActivity extends Activity { 

private TextView text; 
private GridView gridView; 
private final String[] items = new String[]{"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", 
     "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.sample_activity); 

    text = (TextView) findViewById(R.id.feedback); 

    gridView = (GridView) this.findViewById(R.id.myGridView); 
    CustomGridAdapter gridAdapter = new CustomGridAdapter(MainActivity.this, items); 
    gridView.setAdapter(gridAdapter); 
    gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      text.setText((String) (gridView.getItemAtPosition(position))); 
      Log.i("ITEM_CLICKED", "" + (String) (gridView.getItemAtPosition(position))); 
     } 
    }); 

} 
} 

CustomGridAdapter

public class CustomGridAdapter extends BaseAdapter { 

private Context context; 
private String[] items; 
LayoutInflater inflater; 

public CustomGridAdapter(Context context, String[] items) { 
    this.context = context; 
    this.items = items; 
    inflater = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
} 

public View getView(int position, View convertView, ViewGroup parent) { 

    if (convertView == null) { 
     convertView = inflater.inflate(R.layout.item, null); 
    } 
    TextView textView = (TextView) convertView.findViewById(R.id.grid_item); 
    textView.setText(items[position]); 

    return convertView; 
} 

@Override 
public int getCount() { 
    return items.length; 
} 

@Override 
public Object getItem(int position) { 
    return items[position]; 
} 

@Override 
public long getItemId(int position) { 
    return position; 
} 
} 
+0

你的意思是在這個gridview我應該添加100 textview,然後關閉這個gridview ..做了同樣的事情,但這次崩潰的代碼 – user3226440

+1

@ user3226440您可以通過編程的方式執行此操作 –

+0

是的,您已通過編程方式執行此操作。 –