80,492
社区成员
发帖
与我相关
我的任务
分享
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;// Interface to global information about an application environment
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;
}
}
}
<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>
/*
移动:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188
联通:130、131、132、152、155、156、185、186
电信:133、153、180、189 等等
总结起来就是第一位必定为1,第二位必定为3或5或8,其他位置的可以为0-9
*/
public static boolean isMobileNO(String mobiles) {
//正则表达式:"[1]"代表第1位为数字1,"[358]"代表第二位可以为3、5、8中的一个
// "\\d{9}"代表后面是可以是0~9的数字,有9位。
String telRegex = "[1][358]\\d{9}";
if (mobiles.isEmpty()){
return false;
}else{
return mobiles.matches(telRegex);
}
}