安卓程序九宫格按钮1到9怎么做界面?新人求高手指点

解决方案 »

  1.   

    最简单的方法 GridView即可。 要不自己布局拼凑
      

  2.   

     GridView布局就可以
      

  3.   

    TableLayout
      

  4.   

    对于新手还是自己用LinearLayout 加button比较方便
      

  5.   

    用GirdView,设置成3列显示public class MainActivity extends Activity {
     
        private GridView gridView;
        private gridItemAdapter mAdapter;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);        
            setContentView(R.layout.mainlayout);
            gridView = (GridView)findViewById(R.id.grid1);
            mAdapter = new gridItemAdapter(this);
            gridView.setAdapter(mAdapter);
           
        }    private class gridItemAdapter extends BaseAdapter
        {
            private Integer[] numbers = {1,2,3,4,5,6,7,8,9};
            private Context mcontext;
            public gridItemAdapter(Context context)
            {
                mcontext = context;
            }
            @Override
            public int getCount() {
                return numbers.length;
            }        @Override
            public Object getItem(int position) {
                return numbers[position];
            }        @Override
            public long getItemId(int position) {
                return 0;
            }        @Override
            public View getView(final int position, View view, ViewGroup parent) {
                if (view == null)
                {
                    Button btnnumber = new Button(mcontext);
                    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
                    btnnumber.setLayoutParams(lp);
                    btnnumber.setText(String.valueOf(numbers[position]));
                    btnnumber.setTag(numbers[position]);
                    btnnumber.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            Toast.makeText(mcontext,String.valueOf(numbers[position]),Toast.LENGTH_SHORT).show();
                        }
                    });
                    view = btnnumber;
                }
               
                return view;
            }
        }
    }
      

  6.   


    没成功<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context="com.example.h1.MainActivity" >    <!-- layout布局 -->
        
        <!-- 在TV中 单纯的显示一行或多行文本 -->
     <!-- android:layout_below 将控件置于给定ID控件之下 -->    <EditText
            android:id="@+id/editText2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="phone" />       <GridView
            android:id="@+id/gridView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:columnWidth="90dp" 
            android:layout_below="@+id/editText2"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="30dp"
            android:horizontalSpacing="10dp"
            android:verticalSpacing="10dp" 
            android:numColumns="3" >
        </GridView>
        
        <!-- 列宽为90dp
        android:horizontalSpacing定义列之间的间隔
        android:verticalSpacing定义行之间的间隔。
        
         --></RelativeLayout>
    public class MainActivity extends Activity {

     private GridView gridView;
     private gridItemAdapter mAdapter; @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    gridView = (GridView)findViewById(R.id.gridView1);
            mAdapter = new gridItemAdapter(this);
            gridView.setAdapter(mAdapter);

    } @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
    } @Override
    public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_settings) {
    return true;
    }
    return super.onOptionsItemSelected(item);
    }


    private class gridItemAdapter extends BaseAdapter
        {
            private Integer[] numbers = {1,2,3,4,5,6,7,8,9};
            private Context mcontext;
            public gridItemAdapter(Context context)
            {
                mcontext = context;
            }
            @Override
            public int getCount() {
                return numbers.length;
            }
     
            @Override
            public Object getItem(int position) {
                return numbers[position];
            }
     
            @Override
            public long getItemId(int position) {
                return 0;
            }
     
            @Override
            public View getView(final int position, View view, ViewGroup parent) {
                if (view == null)
                {
                    Button btnnumber = new Button(mcontext);
                    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
                    btnnumber.setLayoutParams(lp);
                    btnnumber.setText(String.valueOf(numbers[position]));
                    btnnumber.setTag(numbers[position]);
                    btnnumber.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            Toast.makeText(mcontext,String.valueOf(numbers[position]),Toast.LENGTH_SHORT).show();
                        }
                    });
                    view = btnnumber;
                }
                
                return view;
            }
        }

    }
      

  7.   

    你的GridView上级是嵌套的RelativeLayout,所以在代码里也得用RelativeLayout.LayoutParams
    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
    换成
    RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
      

  8.   

    GridView即可,是在不行就用weight