gpt4 book ai didi

java - 将 Android 屏幕一分为二

转载 作者:太空狗 更新时间:2023-10-29 12:51:46 27 4
gpt4 key购买 nike

我最近开始使用 Android。我对 Android 没有那么多经验。这是我第一次使用 Android。我需要将屏幕分成两半,然后执行一些任务。

  1. 将屏幕分成相等的两半后,在下半部分(即下半部分)我需要制作一个名为 Latitude 的标签,然后对应于一个 Textbox显示当前纬度值和另一个名为 Longitude 的标签,对应于另一个 Textbox,它将显示当前经度值。

我开始着手解决这个问题,并且取得了一些进展 - 下面是我目前使用的 XML 文件,用于将屏幕一分为二。

<?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="match_parent"
android:orientation="vertical" >

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1.8"
android:background="#000000" />

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#000000" >

<!-- Latitude Label -->

<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Latitude"
android:textColor="#372c24" />

<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="20dip"
android:layout_marginTop="5dip"
android:singleLine="true" />
<!-- Longitude Label -->

<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Longitude"
android:textColor="#372c24" />

<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dip"
android:password="true"
android:singleLine="true" />
</LinearLayout>

</LinearLayout>

我的问题是-

  1. 使用上述 XML 文件后,我无法在 Android 屏幕上正确地看到我的both labelboth textbox,我是否遗漏了什么我的 XML 文件?
  2. 其次,如何在相应的文本框中显示当前的纬度和经度值。

任何帮助将不胜感激,因为我是 Android 世界的新手。

更新:- 下面是我在绘画中制作的图表,我想要类似的东西。 enter image description here

如果你看屏幕,它分为两部分,在下半部分,有两个标签(纬度和经度),应该是这样的,每个标签的前面,会有一个将保存相应纬度和经度值的文本框。

更新代码:-对于当前位置-

public class MainActivity extends Activity implements LocationListener {
private TextView latituteField;
private TextView longitudeField;
private LocationManager locationManager;
private String provider;

private static final String TAG = "CurrentLocation";

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
latituteField = (TextView) findViewById(R.id.lat1);
longitudeField = (TextView) findViewById(R.id.lat2);

// Get the location manager
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
// Define the criteria how to select the location provider -> use
// default
Criteria criteria = new Criteria();
provider = locationManager.getBestProvider(criteria, false);
locationManager.requestLocationUpdates(provider, 0, 0, this);
Location location = locationManager.getLastKnownLocation(provider);
onLocationChanged(location);
}

@Override
protected void onDestroy() {
super.onDestroy();
locationManager.removeUpdates(this);
}

@Override
public void onLocationChanged(Location location) {
if (location != null) {
System.out.println("Provider " + provider + " has been selected.");
int lat = (int) (location.getLatitude());
int lng = (int) (location.getLongitude());
Log.v(TAG, lat+ " "+ lng);
latituteField.setText(String.valueOf(lat));
longitudeField.setText(String.valueOf(lng));
} else {
latituteField.setText("Provider not available");
longitudeField.setText("Provider not available");
}
}

@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub

}

@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub

}

@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub

}
}

但是下面的代码没有在相应的文本框上显示任何纬度或经度值?我做错了什么?

最佳答案

"After using the above XML file, I am not able to see my both label and both textbox properly on the Android Screen, Is there anything I am missing here in my XML file?"

看来,您的 LinearLayout 标签可能搞砸了。

看看这是否更接近您要查找的内容:

<?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="match_parent"
android:orientation="vertical"
android:background="@android:color/black" >

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >

<!-- currently empty -->

</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="horizontal" >

<!-- Latitude Label -->

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Latitude"
android:textColor="#372c24" />

<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="20dip"
android:layout_marginTop="5dip"
android:layout_weight="0.35"
android:singleLine="true"
android:text="test1" />
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="horizontal" >

<!-- Longitude Label -->

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Longitude"
android:textColor="#372c24" />

<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dip"
android:layout_weight="0.35"
android:password="true"
android:singleLine="true"
android:text="test2" />
</LinearLayout>
</LinearLayout>

</LinearLayout>

图片

enter image description here


"Secondly, how I can show the current latitude and longitude value in the corresponding textbox."

你尝试了什么?

您需要获取当前的纬度/经度。然后只需在 EditText 上设置文本即可。

关于java - 将 Android 屏幕一分为二,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11553733/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com