我想稍微更改标准Android按钮的颜色,以便更好地匹配客户的品牌.
到目前为止,我发现这样做的最好方法是将Button'drawable'改为drawable,位于res/drawable/red_button.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/red_button_pressed" />
<item android:state_focused="true" android:drawable="@drawable/red_button_focus" />
<item android:drawable="@drawable/red_button_rest" />
</selector>
Run Code Online (Sandbox Code Playgroud)
但这样做需要我居然为每一个按钮,我想自定义三种不同的可绘制(一个用于按钮在休息,一个集中的时候,和一个按下时).这似乎比我需要的更复杂,更干燥.
我真正想做的就是对按钮应用某种颜色转换.是否有更简单的方法来改变按钮的颜色而不是我正在做的事情?
我参与了Android应用程序的开发,这是一个相当"厚"的Web服务移动客户端.它与服务器进行了大量的通信,但也有很多内部逻辑.所以,我决定使用Google Guava库的一些功能来简化开发过程.以下是我非常感兴趣的功能列表:不可变集合,基本工具,集合扩展,函数编程糖和习语(common.collect和common.base),原语实用程序(common.primitives),散列实用程序(common.hash),并发工具(期货和AsyncFunction).我不想在Android中使用的东西:( common.cache见下面的问题),common.eventbus(我们有更好的Android专用库,比如Otto),common.io(我们现在可以使用okio for Android).
我读到使用Guava for Android可以显着减慢编译过程并降低整个运行时性能: Android上的Guava Cache性能不佳 (在这种情况下它是合理的,不需要使用Guava的Android缓存)和 添加Google Guava到Android项目 - 显着减慢了构建速度
那么,在Android项目中使用Guava库是否有效,或者这个库只用于服务器端开发,我应该使用标准解决方案?任何解释都将非常感激.
我在导入一些Android UI测试框架时遇到了麻烦 - 我无法弄清楚出了什么问题!
这是我的班级:
@RunWith(AndroidJUnit4.class)
@LargeTest
public class ExampleUnitTest {
@Rule
public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule(MainActivity.class);
@Test
public void listGoesOverTheFold() {
onView(withText("Hello world!")).check(matches(isDisplayed()));
}
}
Run Code Online (Sandbox Code Playgroud)
但由于某种原因,我得到错误'找不到符号ActivityTestRule'和'找不到符号AndroidJUnit4'.我试图导入它们但是找不到它们.
build.gradle中的依赖项设置为:
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
androidTestCompile 'com.android.support:support-annotations:23.4.0'
androidTestCompile 'com.android.support.test:runner:0.4'
androidTestCompile 'com.android.support.test:rules:0.4'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2'
Run Code Online (Sandbox Code Playgroud)
所以我认为我已经设置了所有依赖项 - 我一直在尝试很多东西,但没有运气.
有人有主意吗?
我对iPhone开发很新.我经常遇到IBAction,IBOutlet等等,在阅读Objective-C和Swift代码时.什么IB代表什么?
我目前仍然遇到这个问题:谷歌地图似乎根本没有加载.请看下面的图片:

这真让我疯狂.我已经做了以下事情:
这是我片段的代码:
import android.content.Context;
import android.content.pm.FeatureInfo;
import android.content.pm.PackageManager;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.ErrorDialogFragment;
import com.google.android.gms.common.GoogleApiAvailability;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.MapView;
import com.google.android.gms.maps.MapsInitializer;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.CameraPosition;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
public class MapsActivity extends Fragment implements OnMapReadyCallback {
private MapFragment mapFragment; …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我目前正在编写的新应用程序中遵循 MVVM 模式。
基本上,它从我的 REST-Backend 获取 JSON 中的项目列表,并将其显示在我的片段内的 RecycleView 中。
我创建了一个存储库,它获取数据并将其移交给具有由片段观察到的 LiveData 的 ViewModel。
这一切正常。
但是:每个项目还有一个图标的 url。获取列表后,对于每个项目,我都想将此 url 中的图标加载到 ImageView 中。
实际上,我使用 Glide 直接(异步)将图标加载到相应的 ImageView 中 - 这对 UX 和性能都有好处(在我看来),因为用户在图标在后台加载时已经看到了数据
我的问题:
直接在片段中使用 Glide 会破坏 MVVM 模式吗?
什么是替代方法?
例如在存储库中加载图标,每次获取图标时更新 RecycleView(性能不佳)?
android mvvm android-glide android-viewmodel android-architecture-components
我正在尝试将一个旧项目迁移到 Retrofit 库,并且该项目有相当棘手的 API。所以我有一个这样的查询模板:
@GET(value = "products/search")
Single<ProductSearchResponse> productSearch();
Run Code Online (Sandbox Code Playgroud)
我必须在以下模板中添加一些参数:
filter[attributeId]=attributeValueId
Run Code Online (Sandbox Code Playgroud)
例如:
products/search?filter[1]=10&filter[1]=11&filter[2]=20&filter[2]=21
Run Code Online (Sandbox Code Playgroud)
这就是 API 的工作方式,我无法更改它。我知道我们可以传递一个列表作为参数,如下所示:
@Query("filter") List<Integer> attributeValueIds
Run Code Online (Sandbox Code Playgroud)
但我怎样才能动态设置参数的名称呢?
我有一个显示数据的 Recyclerview 活动。现在我想更新我RecyclerView曾经获得的新数据。现在每次关闭并重新打开我的应用程序时,都会显示新数据。但我希望它无需关闭即可更新我的视图。
我试过这个,
但没有任何效果,
fun setupViewPager(viewPager: ViewPager, it: List<TransactionEntity>, incoming: TransactionAdapterDirection, mainActivity: MainActivity) {
val cc: Context = mainActivity.applicationContext
if(adapter.count < 2) {
if (incoming.equals(OUTGOING)) {
val gson = Gson()
val gson1 = GsonBuilder().create()
val model = it
val IT = gson.toJson(model)
val pref = cc.applicationContext.getSharedPreferences("MyPrefSend", 0)
val editor = pref.edit()
editor.putString("NEWIT_SEND", IT)
editor.apply()
adapter.addFragment(SendingFragment(),"SEND")
adapter.notifyDataSetChanged()
} else if (incoming.equals(INCOMING)) {
val gson = Gson()
val gson1 = GsonBuilder().create()
val model = it
val IT = gson.toJson(model) …Run Code Online (Sandbox Code Playgroud) 我正在创建两个java文件第一个主要activity.java文件第二个fragment.java文件在fragment.java上创建按钮如何单击activity.java上写的监听器帮助我
片段.java
public class fragment extends fragment{
Button btn;
// some code
btn = (Button)layout.findviewbyid(R.id.btn1);
}
}
Run Code Online (Sandbox Code Playgroud)
活动.java
public class activity extends Activity
{
// how to access the click action btn here
btn.setOnclicklistner(new View.OnClickLisitner(){
public OnClick(){
}
Run Code Online (Sandbox Code Playgroud) android ×9
java ×3
android-architecture-components ×1
android-maps ×1
ase ×1
google-maps ×1
guava ×1
iphone ×1
junit4 ×1
jython ×1
kotlin ×1
mvvm ×1
python ×1
retrofit2 ×1
xcode ×1