Как я могу установить тексты в центре ячеек gridview приложения для Android? - PullRequest
1 голос
/ 12 января 2012

Здравствуйте уважаемые программисты, Я очень новичок в разработке приложений для Android и на практике я пытался разработать приложение со следующим кодом

     package com.android.practice;

    import android.content.Context;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.GridView;
    import android.widget.TextView;



    public class CalculatorAdapter extends BaseAdapter {
        private Context mContext;
        private String[] texts={"1","2","3","+","4","5","6","-","7","8","9","*",".","0","=","/"};
        public CalculatorAdapter(Context context) {
            mContext=context;
        }
        @Override
        public int getCount() {
            return texts.length;
        }
        @Override
        public Object getItem(int position) {
            return null;
        }
        @Override
        public long getItemId(int position) {
            return 0;
        }
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            TextView tv;
            if(convertView==null){
                tv=new TextView(mContext);
                tv.setLayoutParams(new GridView.LayoutParams(85,85));
            }else{
                tv=(TextView)convertView;
            }
            tv.setText(texts[position]);
            tv.setTextSize(30);
            return tv;
        }

    }



       package com.android.practice;

    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.GridView;

    public class MyCalculatorActivity extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            GridView gv=(GridView)findViewById(R.id.gridView);
            //gv.setGravity(0x11);
            gv.setAdapter(new CalculatorAdapter(this));

        }
    }


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:weightSum="1">
    <TextView  
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="0"
        android:textStyle="bold"
        android:textSize="30px"
        android:gravity="center_horizontal"
        android:background="#aa0000"
    />
    <GridView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/gridView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:clickable="true"
        android:numColumns="4"
        android:columnWidth="90dp"
        android:horizontalSpacing="10dp"
        android:verticalSpacing="10dp"
        android:stretchMode="columnWidth"
    />
</LinearLayout>

Моя проблема заключается в том, что, хотя я указал атрибут тяжести вида сетки как центр, я не получаю тексты в центре клеток моего вида сетки.

Пожалуйста, помогите мне, если кто-то найдет, в чем проблема.

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 12 января 2012

Используйте это

<TextView   
android:gravity="center_vertical|center_horizontal"  />
0 голосов
/ 12 января 2012

Вы можете попробовать установить пользовательский макет в разделе getview адаптера.

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

   if (convertView == null){  
        convertView = LayoutInflater.from(context).inflate(R.layout.tab_button, null);
    }
    LinearLayout ll=(LinearLayout) convertView.findViewById(R.id.linear_topbar);


    TextView tv= (TextView) convertView.findViewById(R.id.title);
    tv.setText(texts[position]);
            tv.setTextSize(30);
    return convertView;
}

Это XML-файлы

<TextView android:id="@+id/title" android:text="title"
    android:layout_width="wrap_content" android:textColor="#fff"
    android:textStyle="bold" android:textSize="30dp" android:layout_height="wrap_content"></TextView>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...