我想创建一个扩展的类AlertDialog.Builder:
public class AlertBuilder extends AlertDialog.Builder {
private MultiAdapter mAdapter;
private ListView lv;
private Activity mActivity;
private Context mContext;
private CheckedTxtView checkedItem;
public AlertBuilder(Context context, Activity activity, final List<CheckedTxtView> mList) {
super(context);
this.mActivity = activity;
this.mContext = context;
this.setTitle("Test");
LayoutInflater inflater = activity.getLayoutInflater();
View dialoglayout = inflater.inflate(R.layout.main_filter, null);
this.setView(dialoglayout);
mAdapter = new MultiAdapter(context, mList);
lv = (ListView) dialoglayout.findViewById(R.id.list);
lv.setAdapter(mAdapter);
lv.setOnItemClickListener(new ItemClick());
}
class ItemClick implements OnItemClickListener {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { …Run Code Online (Sandbox Code Playgroud) 我在android studio项目中添加了一个单元测试文件夹.默认文件夹是andoidTest,但我在测试中添加了一个新文件夹和名称.(如robolectric样品测试)
当我在我的build.gradle中添加测试依赖项时,例如
testCompile("junit:junit:${junitVersion}")
testCompile ("org.robolectric:robolectric:${robolectricVersion}")
Run Code Online (Sandbox Code Playgroud)
它们不会被添加到项目下的外部库中,但是当我使用默认配置和使用时androidTestCompile,它可以添加外部库.
然后我想也许我应该在gradle中使用setRoot进行测试,所以我在build.gradle的android标签中使用了以下内容:
sourceSets {
androidTest.setRoot('src/test')
}
Run Code Online (Sandbox Code Playgroud)
但仍然存在问题.我可以运行测试gradlew,但是测试文件夹中的类的导入不适用,也没有可见的外部库用于测试目的.
任何人都有解决此问题的方法吗?
android unit-testing gradle robolectric android-gradle-plugin
我在我的应用程序中使用 Navigation-Compose :
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
ComposeTheme {
val navController = rememberNavController()
NavHost(navController = navController, startDestination = Screens.Dashboard.title) {
composable(Screens.Dashboard.title) {
DashboardScreen(navController)
}
composable(
Screens.Section.title, arguments = listOf(
navArgument(LINK) {
type = AssetParamType()
}
)
) {
SectionDetailsScreen(navController)
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我在每个屏幕上都有一个单独的应用程序栏,例如:
@Composable
fun DashboardScreen(
navController: NavHostController,
viewModel: DashboardViewModel = hiltViewModel()
) {
Scaffold(
topBar = {
TopAppBar(
title = {
Box(
contentAlignment = Alignment.Center,
modifier = Modifier.fillMaxSize()
) {
Text(text = stringResource(id …Run Code Online (Sandbox Code Playgroud) 我在服务器数据库和移动应用程序(Android,iPhone)之间使用Jersey开发了一个RESTful Web服务mySQL.
我Hibernate在Web服务中使用与数据库通信,然后将我DAOs连接到Jersey服务.
我的操作系统是Windows7-64bit.眼下Web服务上运行Tomcat 7在locathost.如何在Internet上发布我的Web服务?什么是最好的方法?例如,我可以使用亚马逊网络服务Apache HTTP Server吗?或者可能是其他Web服务器,例如: Web服务器 - 示例
我的计划是为所有Android版本创建一个包含Tabs + Swipe的Activity.如果我们从默认的Android项目设置它,它至少支持API 11.
在Sherlock,我们有两个项目名称:选项卡导航,选项卡导航(折叠)包括选项卡但不包括滑动.他们的样本中有问题#240有错误(当标签处于折叠模式(横向)并且所选项目未更新时向左/向右滑动).
你知道任何解决这个问题的示例代码吗?
在支持库中引入了FloatingActionButton.有一个选项可以设置按钮的边框宽度app:borderWidth="2dp",但设置边框颜色怎么样?
我为该porpuse创建了一个自定义drawable,例如:
<item>
<shape android:shape="oval">
<solid android:color="@color/color1" />
<stroke android:width="2dp" android:color="@android:color/white" />
</shape>
</item>
Run Code Online (Sandbox Code Playgroud)
并尝试使用FloatingActionButton的两个android:background和app:backgroundTint属性来设置背景.他们没有工作.请注意,app:backgroundTint似乎只是为了接受颜色而不是可绘制的
有人知道任何解决方法吗?
我在google-services.json的内容中读到了google-services.json的用法吗?:在公开发布您的应用程序后,如果没有json文件,它将无法运行.
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
mTracker = analytics.newTracker(R.xml.global_tracker);
Run Code Online (Sandbox Code Playgroud)
我在另一篇文章中读过autoActivityTracking.我们还可以创建一个xml资源文件,res/xml/并设置我们要跟踪的活动:
<string name="ga_trackingId">UA-XXXXXX-X</string>
<bool name="ga_autoActivityTracking">true</bool>
<screenName name="com.example.android.dinnerapp.MainActivity">
Main screen
</screenName>
<screenName name="com.example.android.dinnerapp.OrderDinnerActivity">
Order dinner
</screenName>
<screenName name="com.example.android.dinnerapp.RemoveMealActivity">
Eradicate dinner
</screenName>
<screenName name="com.example.android.dinnerapp.ShowDinnerActivity">
Show dinner
</screenName>
<screenName name="com.example.android.dinnerapp.ShowRecipeActivity">
Show recipe
</screenName>
Run Code Online (Sandbox Code Playgroud)
并使用以下方式进行设置:
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
mTracker = analytics.newTracker(R.xml.track_app);
Run Code Online (Sandbox Code Playgroud)
我想知道当我们使用json文件时它是如何可行的?
我正在使用Jersey实现RESTful Web服务.我使用hibernate与数据库(mySQL)进行通信.我的hibernate资源类包括:
@Entity
public class Activity {
@Id
@GeneratedValue
private long id;
@ManyToOne
@JoinTable(name="category_activity",
joinColumns={@JoinColumn(name="activities_id")},
inverseJoinColumns={@JoinColumn(name="Category_id")})
private Category category;
}
Run Code Online (Sandbox Code Playgroud)
和类别:
@Entity
public class Category {
@Id
@GeneratedValue
private long id;
@OneToMany
@Fetch(FetchMode.JOIN)
@JoinTable(name = "category_activity",
joinColumns = { @JoinColumn(name = "Category_id") },
inverseJoinColumns = { @JoinColumn(name = "activities_id") })
@JsonIgnore
private Collection<Activity> activities;
}
Run Code Online (Sandbox Code Playgroud)
我用这个查询来获取活动:
session.createQuery("from Activity a join a.category cs where cs.id= :categoryId order by a.key").setLong("categoryId", categoryId).list();
Run Code Online (Sandbox Code Playgroud)
JSON格式的结果不正确:
[[{"id":26,"key":"other","name":"Other","cost":100.0,"category":{"id":10,"name":"General","description":""}},{"id":10,"name":"General","description":""}]]
Run Code Online (Sandbox Code Playgroud)
如你所见,类别被打印2次,我们周围有一个额外的[].当我在Category类中使用One-To-Many关系的另一种机制时,如:
@OneToMany(targetEntity = Activity.class, mappedBy = "category", fetch = …Run Code Online (Sandbox Code Playgroud) 我正在我的应用程序和MySQL 之间使用Jersey开发Restful Web ServiceAndroid, iPhone.我还Hibernate用来将数据映射到数据库.
我有一个sessionId(键).它是在用户登录系统时生成的.
在User课堂上:
public Session daoCreateSession() {
if (session == null) {
session = new Session(this);
} else {
session.daoUpdate();
}
return session;
}
Run Code Online (Sandbox Code Playgroud)
在Session课堂上:
Session(User user) {
this.key = UUID.randomUUID().toString();
this.user = user;
this.date = new Date();
}
void daoUpdate() {
this.key = UUID.randomUUID().toString();
this.date = new Date();
}
Run Code Online (Sandbox Code Playgroud)
当用户成功登录系统时,我将此sessionId发送到移动应用客户端.然后,当我想根据登录用户从数据库中获取一些信息时,我将此会话密钥作为in the REST Services每个请求的身份验证.
例如,对于用户参与的项目列表,我使用 client.GET(SERVER_ADDRESS/project/get/{SessionID})
不确定的client.GET(SERVER_ADDRESS/project/get/{username}).
如果它不是有效的会话密钥,我将向客户端发送403禁止代码.你也可以看看这里 …
我想以编程方式在 Android 中获取默认网关。我首先找到了以下解决方案:@Sandeep 回答的代码中路由器的 IP 地址
然后我意识到formatIpAddress已被弃用。如文档所述:我们可以getHostAddress()
我还认为,这更好,因为我可能不需要像@Sandeep 在他的回答中提到的那样为我的应用程序添加新权限:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
Run Code Online (Sandbox Code Playgroud)
我使用了以下解决方案get default gateway,例如:How to get default gateway using Ethernet, not wifi
public static String getLocalIpAddress() {
try {
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) {
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements(); ) {
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) {
return inetAddress.getHostAddress();
}
}
}
} catch (SocketException ex) …Run Code Online (Sandbox Code Playgroud)