我正在开发一个应用程序,其中将代码从Java转换为C#,以在Android上的离线模式下创建自定义MapView。
我正在使用用Java编写的tutorial,并且有一些我无法理解的名称空间,本教程的创建者甚至从那里获得了它们,尤其是写为import com.mapapp.mapapp.R;
的特定名称。
为了指定我在哪里,我正在从事这项活动。
我什至不知道在尝试查找有关它的信息时要查找什么,因为它看起来像是项目中的类,但是通过查看package com.mapapp.main;
似乎应该是nuget包还是引用同一解决方案中的其他项目。但是创建者从未在教程中提及过类似的内容。
package com.mapapp.main;
import android.app.Activity;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.Environment;
import android.view.Display;
import android.view.KeyEvent;
import com.mapapp.helpers.PointD;
import com.mapapp.mapapp.R;
import com.mapapp.tileManagement.TilesProvider;
import com.mapapp.views.MapView;
import com.mapapp.views.MapViewLocationListener;
在这种情况下,此命名空间在C#中等效于什么,R是什么?
这是使用R的代码部分:
void initViews()
{
// Creating the bitmap of the marker from the resources
Bitmap marker = BitmapFactory.decodeResource(getResources(), R.drawable.marker);
// Creating our database tilesProvider to pass it to our MapView
String path = Environment.getExternalStorageDirectory() + "/mapapp/world.sqlitedb";
tilesProvider = new TilesProvider(path);
// Creating the mapView and make sure it fills the screen
Display display = getWindowManager().getDefaultDisplay();
mapView = new MapView(this, display.getWidth(), display.getHeight(), tilesProvider, marker);
// If a location was saved while pausing the app then use it.
if (savedGpsLocation != null) mapView.setGpsLocation(savedGpsLocation);
// Update and draw the map view
mapView.refresh();
}
参考方案
“ R”只是由编译器自动生成的公共类,其中包含对唯一资源ID的静态引用。
编译任何资源(例如图像,字符串,XML样式等)时,每次编译都会为其指定一个唯一的整数。
为了易于使用,R.java包含每个资源的静态常量名称。
请注意,不能保证两个编译之间的ID相同,因此为什么要生成R.java,并且这是引用资源的唯一受支持的方式。
这是一个例子。
public final class R {
public static final class attr {
}
public static final class drawable {
public static final int marker=0x7f020000;
}
public static final class id {
public static final int b1=0x7f050001;
public static final int text1=0x7f050000;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f040001;
public static final int app_name1=0x7f040003;
public static final int hello=0x7f040000;
public static final int hello1=0x7f040002;
}
}
'R.drawable.marker'将解析为'0x7f020000'
You can read more here.
在Android Studio中启动AVD时出错 - java请帮助我启动AVD时出现以下错误无法在模拟器中启动AVD。输出:模拟器:警告:VM堆大小设置为低于硬件指定的最小值256MB警告:请求的ram_size 1536M太大,减少到512M模拟器:警告:将VM堆大小设置为384MB警告:无法配置任何DNS服务器,名称解析将不起作用启用Hax蜡ram_size 0x20000000HAX正在运行,并且模拟器在快速v…
在Android GCM上使用Java EE优于PHP的优势 - javaImprove this question 我的Android应用程序需要服务器的下游和上游。因此,我决定在Web服务器中使用GCM XMPP。但是XMPP是否支持php Web服务器?如果支持,那么与PHP Web服务器相比,使用J2EE Web服务器有什么优势吗?任何想法将不胜感激。 参考方案 使用您更熟悉的平台。 Web位只是Android应用程序的支…
Visual Studio Code可以增量编译Java Web App项目吗? - java我是Visual Studio Code的新手。我正在尝试将其与使用Maven的现有Java Web应用程序项目一起使用。我已经下载了推荐的Java扩展,例如Java Extension Pack,Java Maven和Java Tomcat。在IntelliJ(我通常的IDE)中,我可以很快地从Java的少量编辑转到Tomcat中刷新的WAR。如果我编辑文…
应用程序运行时崩溃-不幸地停止了 - java我的MainScreen包含4个ImageView,每个ImageView都会将用户发送到类别活动,然后发送Extra数据以在ListView中显示内容,但是一旦我单击任何ImageView,应用程序就会停止工作,并在Logcat中显示此错误消息。有人知道这是什么意思吗? 块引用 04-13 21:43:53.337 15929-15929 / com.ib…
Java:正则表达式模式匹配器是否有大小限制? - java我的模式类似于OR:“word1 | word2 | word3”我大约有800个字。可能有问题吗? 参考方案 您仅受记忆和理智的限制。 :)