安卓实现的根据坐标显示位置功能
最近在写一个简单的签到功能,能够根据提供的坐标将坐标显示到坐标分布图中,
MainActivity:
package com.example.xuanzuo;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
private Button qiandao;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
qiandao = (Button) findViewById(R.id.qiandao);
qiandao.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
LayoutInflater layoutInflater = LayoutInflater.from(MainActivity.this);
final View view = layoutInflater.inflate(R.layout.dialog,null);
new AlertDialog.Builder(MainActivity.this).setTitle(" 填写坐标").setView(view).setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
EditText pai = (EditText) view.findViewById(R.id.pai);
EditText lie = (EditText) view.findViewById(R.id.lie);
int pai_1 =Integer.parseInt(pai.getText().toString());
int lie_1 =Integer.parseInt(lie.getText().toString());
Intent intent = new Intent(MainActivity.this,SeatActivity.class);
intent.putExtra("pai_1", pai_1);
intent.putExtra("lie_1", lie_1);
startActivity(intent);
Toast.makeText(MainActivity.this, "你的座位为"+ pai_1 +"排" + lie_1 +"列", Toast.LENGTH_SHORT).show();
}
}).setNegativeButton("取消", null).show();
}
});
}
}
跳转以后的界面,显示的是一个坐标平面分布图:
package com.example.xuanzuo;
import java.util.ArrayList;
import java.util.List;
import com.edu.hpu.storage.ImageViewGridAdapter;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.GridView;
public class SeatActivity extends Activity {
// @Override
// protected void onCreate(Bundle savedInstanceState) {
// super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_seat);
// }
private GridView gridview;
private ImageViewGridAdapter adapter;
private ArrayList<Integer>data;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.image);
gridview = (GridView)findViewById(R.id.gridView1);
data = new ArrayList<Integer>();
adapter = new ImageViewGridAdapter(this, data);
gridview.setAdapter(adapter);
data.addAll(getData());
adapter.notifyDataSetChanged();
}
public List<Integer> getData(){
List<Integer> data = new ArrayList<Integer>();
Intent intent = getIntent();
int pai_1 = intent.getIntExtra("pai_1", 0);
int lie_1 = intent.getIntExtra("lie_1",0);
pai_1--;
lie_1--;
for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
if(i==pai_1 && j==lie_1){
data.add(R.drawable.seat_checked);
}else{
data.add(R.drawable.seat_normal);
}
}
}
return data;
}
}
这个是我写的一个适配器:
package com.edu.hpu.storage;
import java.util.ArrayList;
import java.util.List;
import com.example.xuanzuo.R;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
public class ImageViewGridAdapter extends BaseAdapter {
private Context context;
private List<Integer>data;
public ImageViewGridAdapter(Context context, List<Integer> data) {
super();
this.context = context;
setData(data);
}
public void setData(List<Integer> data){
if(data == null){
data = new ArrayList<Integer>();
}
this.data = data;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return this.data.size();
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder;
if(convertView == null){
holder = new ViewHolder();
convertView = LayoutInflater.from(context).inflate(R.layout.grid_item, null);
holder.image = (ImageView)convertView.findViewById(R.id.item_grid);
convertView.setTag(holder);
}else{
holder =(ViewHolder) convertView.getTag();
}
holder.image.setImageResource(data.get(position));
return convertView;
}
private class ViewHolder{
ImageView image;
}
}
main_activity布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
>
<Button
android:id="@+id/qiandao"
android:layout_width="100dip"
android:layout_height="70dip"
android:background="#C1C1C1"
android:text="签到"
android:textColor="#CD0000"
/>
</RelativeLayout>
seat_activty布局:
<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"
tools:context="${relativePackage}.${activityClass}" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</RelativeLayout>
当点击签到时,会弹出一个对话框,提示提交坐标:
<?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"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="19sp"
android:text=" 排:"/>
<EditText
android:id="@+id/pai"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="19sp"
android:text=" 列:"/>
<EditText
android:id="@+id/lie"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
</LinearLayout>
gridView中的item:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="200dp"
android:orientation="vertical" >
<ImageView
android:id="@+id/item_grid"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_gravity="center_vertical"
android:src="@drawable/ic_launcher" />
</LinearLayout>
gridview界面:
<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:background="#000000"
>
<GridView
android:id="@+id/gridView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:numColumns="10"
android:columnWidth="70dp"
android:horizontalSpacing="4dp"
android:stretchMode="columnWidth"
>
</GridView>
</RelativeLayout>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理