- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个 Android 应用程序。我在网上查了一下,并尝试了一些方法,但没有任何效果。我正在尝试在我的 Android 应用程序中运行静态内部类。它为我排序了 ArrayList。我尝试了以下方法:
GenericCachedSorter sort = new GenericCachedSorter();
sort.main(Longitude1);
sort.sort(distancetos, null);
和
new GenericCachedSorter();
GenericCachedSorter.main(Longitude1);
但是这两行代码都给出了 NPE。我不知道为什么这不起作用。我的代码如下:
NearestStations.java
public class Neareststations extends Activity implements LocationListener {
LocationManager mLocationManager;
double longitude;
double latitude;
String distancea;
String distance1;
static Map<String, String> myMap1 = new HashMap<String, String>();
static ArrayList<Double> distancetos = new ArrayList<Double>();
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.neareststations);
// Show the Up button in the action bar.
getActionBar().setDisplayHomeAsUpEnabled(true);
List<String> Lat1 = Arrays.asList(getResources().getStringArray(R.array.Latitude));
Log.i("Lat1", String.valueOf(Lat1.get(0)));
String[] Stations = getResources().getStringArray(R.array.Stations);
String[] Longitude = getResources().getStringArray(R.array.Longitude);
for (int h = 0; h <144; h++) {
myMap1.put(Stations[h], Longitude[h]);
}
mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Location location = mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
longitude = location.getLongitude();
latitude = location.getLatitude();
if(location != null && location.getTime() > Calendar.getInstance().getTimeInMillis() - 2 * 60 * 1000) {
{
}
}
else {
mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5, 50, this);
Log.i("MYTAG", String.valueOf(location));
}
longitude = location.getLongitude();
latitude = location.getLatitude();
if (location != null) {
longitude = location.getLongitude();
latitude = location.getLatitude();
Log.i("MYTAG", String.valueOf(longitude));
Log.i("MYTAG", String.valueOf(latitude));
List<String> Long = Arrays.asList(getResources().getStringArray(R.array.Longitude));
List<String> Lat = Arrays.asList(getResources().getStringArray(R.array.Latitude));
Log.i("Long1", String.valueOf(Long.get(0)));
Iterator<String> iterator = Lat.iterator();
Iterator<String> iterator1 = Long.iterator();
ArrayList<Double> longitudeArray = new ArrayList<Double>();
while(iterator.hasNext()){
for (int i=0; i<144;i++){
double distance = 0;
double lat_end = 0;
double lon_end = 0;
try {
lat_end = Double.parseDouble(iterator.next());
lon_end = Double.parseDouble(iterator1.next());
longitudeArray.add((lon_end));
} catch (NumberFormatException e) {
Log.v("Main", "Convert to Double Failed : ");
}
Location locationA = new Location("point A");
locationA.setLatitude(latitude);
locationA.setLongitude(longitude);
Location locationB = new Location("point B");
locationB.setLatitude(lat_end);
locationB.setLongitude(lon_end);
distance = locationA.distanceTo(locationB) * 0.000621371192237334;
String dista = Double.toString(distance);
distancetos.add(Double.parseDouble(dista));
}
}
Collections.sort(distancetos);
distancea = distancetos.get(0).toString();
distance1 = distancetos.get(1).toString();
String Longa = longitudeArray.get(0).toString();
String Long1 = longitudeArray.get(1).toString();
String[] Stations1 = getResources().getStringArray(R.array.Stations);
String[] Longitude1 = getResources().getStringArray(R.array.Longitude);
String[] Latitude = getResources().getStringArray(R.array.Latitude);
Map<String, String> myMap = new HashMap<String, String>();{
for (int i = 0; i <144; i++) {
myMap.put(Latitude[i], Stations1[i]);
}
}
Map<String, String> myMap1 = new HashMap<String, String>();{
for (int h = 0; h <144; h++) {
myMap1.put(Longitude1[h], Stations1[h]);
}
}
String value = myMap1.get(Longa);
}
}
public void onLocationChanged(Location location) {
}
public void onProviderDisabled(String arg0) {}
public void onProviderEnabled(String arg0) {}
public void onStatusChanged(String arg0, int arg1, Bundle arg2) {}
public static class GenericCachedSorter {
public static void main(String[] args) {
sort(distancetos, new ToComparable<Double, Double>() {
@Override
public Double toComparable(Double distance) {
// return the longitude associated with this distance
return (Double.parseDouble(myMap1.get(distance)));
}
});
for (Double distance : distancetos)
System.out.println(distancetos);
}
public interface ToComparable<T, C extends Comparable<? super C>> {
C toComparable(T t);
}
public static <T, C extends Comparable<? super C>> void sort(List<T> list, ToComparable<T, C> function) {
class Pair implements Comparable<Pair> {
final T original;
final C comparable;
Pair(T original, C comparable) {
this.original = original;
this.comparable = comparable;
}
@Override
public int compareTo(Pair other) {
return
comparable == null && other.comparable == null ? 0 :
comparable == null ? -1 :
other.comparable == null ? 1 :
comparable.compareTo(other.comparable);
}
}
List<Pair> pairs = new ArrayList<Pair>(list.size());
for (T original : list)
pairs.add(new Pair(original, function.toComparable(original)));
Collections.sort(pairs);
ListIterator<T> iter = list.listIterator();
for (Pair pair : pairs) {
iter.next();
iter.set(pair.original);
}
}
}
}
感谢您的帮助。
最佳答案
public static void main(String[] args)
在 Android 中不可用。删除它并用另一个简单的方法调用它。
public void SortingHere() {
sort(distancetos, new ToComparable<Double, Double>() {
@Override
public Double toComparable(Double distance) {
// return the longitude associated with this distance
return (Double.parseDouble(myMap1.get(distance)));
}
});
for (Double distance : distancetos)
System.out.println(distancetos);
}
关于java - 如何在 Android 应用程序中运行静态内部类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19647024/
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 5 年前。 Improve
在 C# 静态方法中是否有一种方法可以引用定义该方法的类型? 在实例方法中,您可以通过以下方式确定类型: public void Foo() { Type type = this.GetTyp
WPF:静态、动态资源以及资源词典 静态资源与动态资源 我们常常会使用样式或者控件模板放在Window.Resources中,比如这样: 静态资源与动态资源使用如下: <Window
任何人都知道如何在共享/静态函数中动态加载控件?该函数本身位于 mustinherit/abstract 类中。 (这是 VB 中的 ASP.NET 项目)我想做这样的事情: VB: Publ
在我看来,静态/强类型编程语言最宝贵的一点是它有助于重构:如果/当您更改任何 API,那么编译器会告诉您该更改破坏了什么。 我可以想象用运行时/弱类型语言编写代码......但我无法想象没有编译器的帮
正如我的名字所暗示的,我是一名 .NET 开发人员,但我对 Java 的兴趣越来越大,并且我有兴趣学习更多其他语言,因为这有助于我学习更多关于编程的知识。 无论如何,我的问题是:不带参数/不使用状态的
我在java中使用WireMock来 stub POST请求。该请求返回一个存储在我本地的 json 正文文件。 stub 看起来像这样: wireMockServer.stubFor(get(url
Python 是否有类构造函数的机制,即每当首次引用类时(而不是创建该对象的实例时)调用的函数?我知道其他一些语言中也存在这种情况,但我还没有在 Python 中遇到过。 基本上,我想初始化该函数中的
Python 是否有类构造函数的机制,即每当首次引用类时(而不是创建该对象的实例时)调用的函数?我知道其他一些语言中也存在这种情况,但我还没有在 Python 中遇到过。 基本上,我想初始化该函数中的
这个问题已经有答案了: What is the difference between dynamic and static polymorphism in Java? (14 个回答) 已关闭 4 年
这个问题已经有答案了: 已关闭10 年前。 Possible Duplicate: Static initializer in Java 我想知道这个静态的东西(抱歉,这是我第一次遇到这个)对一个类有
如果c++应用程序是按以下方式组织的 //file1.cpp static Y sgObj = X::getInitObject(0); //declared in file scope //fil
我有一个抽象类(AvergedDataRecord),我需要进一步抽象(DataRecord),这样我就可以将它扩展到原始类和一个新的具体类(SummedDataRecord),并且我在获取某些方法时
我正在尝试制作一个字符串枚举。这是我到目前为止所得到的, private class TypedEnum : IEnumerable { public IEnumerator GetEnume
我选修了一门名为“安全代码”的类(class),在下一个作业中,我们应该对一些 C 文件和 JavaEE Web 项目进行静态/动态分析。 我检查了“源监视器”并在 C 文件上运行它,但是(除非我不知
我有两个类,一个是登录类,一个是用户类。在 loggedIn 类中,我想显示我在用户登录时所做的共享首选项。 loginPrefs = getSharedPreferences("loginprefe
我在同一个 Activity 中有两个静态 fragment ,在“fragmentA”中我有一个自定义列表,当一个项目被点击时必须在“fragmentB”中出现一个细节,细节只在我改变屏幕方向时出现
在 Java 中是未修改方法变量,缺少final,每次都重新初始化限定符 静态方法 实例方法 如果 1. 或 2.(或两者)的答案是 final 限定符允许 Java 执行优化并存储方法变量只有一次?
我有两个类相互交互。第一个是中心的,如下: public class Datenbank { double winkelPanel = 0; double groessePanel = 0; doub
我有一个 mysql 数据库,它连接基于 Web 的 php 应用程序和 FoxPro 应用程序(是的,foxpro)。在之前的“开发人员”被解雇后开始处理这个问题。 无论如何,我熟悉 AES_Enc
我是一名优秀的程序员,十分优秀!