编辑
我已按照这些教程来解决此问题.
http://www.truiton.com/2015/06/android-tabs-example-fragments-viewpager/ https://guides.codepath.com/android/google-play-style-tabs-using-tablayout http:/ /www.voidynullness.net/blog/2015/08/16/android-tablayout-design-support-library-tutorial/
但是在尝试了几种解决方案之后,这个问题仍然存在.这是我面临的问题的演示.自从我遇到这个问题以来已经有好几周了.
演示链接.
我用于测试的设备是Nexus 4和Nexus 5.
TabLayout与ViewPager滚动不顺畅.我需要滑动两次以在下一次点击时移动.我环顾网络但找不到任何解决方案.我正在使用最新的支持设计库.这是gradle文件
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "com.softoven.ultron"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.android.support:design:23.3.0'
compile 'org.jsoup:jsoup:1.6.1'
compile 'com.mikhaellopez:circularimageview:3.0.0'
compile 'com.android.support:recyclerview-v7:23.3.0'
compile 'com.mcxiaoke.volley:library:1.0.19'
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
compile 'com.google.code.gson:gson:2.5'
}
Run Code Online (Sandbox Code Playgroud)
这是活动代码.
private DrawerLayout …Run Code Online (Sandbox Code Playgroud) java android android-fragments android-viewpager android-tablayout
我正在学习RxJava.为此,我在RxJava上关注了droidcon谈话视频.教练为他正在使用的项目提供了回购链接.当我尝试在我的机器上构建项目时,我克隆了repo.我收到这个错误
错误:无法删除旧的javaCompile操作,可能是类名已更改?请提交错误报告,告知您正在使用的gradle版本.
这是gradle.build文件
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'me.tatarka:gradle-retrolambda:2.5.0'
}
}
repositories {
mavenCentral()
maven { url "https://github.com/alter-ego/advanced-android-logger/raw/develop/releases/" }
}
apply plugin: 'retrolambda'
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "25.0.0"
defaultConfig {
applicationId "com.packtpub.apps.rxjava_essentials"
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
jackOptions {
enabled true
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
lintOptions {
disable 'InvalidPackage' …Run Code Online (Sandbox Code Playgroud) 我正在尝试在网络应用中加入谷歌分析图,以显示用户应用程序使用情况的统计数据.这是本地网址http://192.168.100.10:9000/我登录仪表板(网络应用程序)我有一个谷歌登录按钮.到目前为止,我在登录后维护用户的会话.
当用户点击登录按钮时.它触发回调方法.当第一次触发回调时,它会保持会话.我的意思session("user")是这里不是空的.
public Result callback() {
JsonNode jsonNode = Json.parse(session("user"));
UserDTO userDTO = Json.fromJson(jsonNode, UserDTO.class);
if (userDTO.getRole().getType().equals(RoleDTO.EnRoleType.ADMIN.toString()))
return redirect(com.softoven.ultron.controllers.routes.AccountCTRL.index());
if (request().queryString().get("code") != null && request().queryString().get("state") != null && request().queryString().get("state")[0].equals(session("state"))) { // Check if he/she is authorized
session().remove("state");
Analytics analytics = setAnalytics(userDTO, request());
session("analytics", Json.toJson(analytics).toString());
return redirect(com.softoven.ultron.controllers.routes.AccountCTRL.index());
} else { // Create Authorization URL
String url = helper.buildLoginUrl();
session("state", helper.getStateToken());
return redirect(url);
}
}
Run Code Online (Sandbox Code Playgroud)
这是用户点击登录按钮https://accounts.google.com/o/oauth2/auth?access_type=offline&approval_prompt=force&client_id=784122128025-cvq0fn1e23f24dia4soavsd9v1ovesub.apps.googleusercontent.com&redirect_uri=http://localhost:9000/callback&response_type=code&scope=https://www.googleapis.com/auth/analytics.readonly%20https://www.googleapis.com/auth/analytics.manage.users%20https://www.googleapis.com/auth/analytics%20https://www.googleapis.com/auth/analytics.edit%20https://www.googleapis.com/auth/analytics.manage.users.readonly%20https://www.googleapis.com/auth/analytics.provision&state=google-35808300时的网址当用户点击
allow谷歌登录权限页面上的按钮时,控制权将返回callback()
但这次session("user")是空的.这不应该是null,因为我在用户登录时设置了会话.我不知道为什么会发生这种情况以及如何解决这个问题.
这是从谷歌权限页面重定向后的结束网址. HTTP://本地主机:9000 /回调状态=谷歌-35808300&代码= 4/G-FkJ3GGS01jbeXLHK0o95ks-K-drGK7bxgzvi3cELU#
java session google-analytics playframework playframework-2.0
好的,所以我需要循环ViewPager.我真的很难实现它.现在我已经实现了它并且它正在工作正常,因为圆形滚动是关注.但是我注意到了一个问题.这是第一轮滚动片段后不起作用.我有三个碎片,里面有一个按钮.按钮在第一轮工作,但当我回到第一页按钮不起作用.ps我使用假页面技术使viewpager循环.
这是代码
mViewPager.setAdapter(new PagerAdapter(getSupportFragmentManager(), this));
//mViewPager.setOnPageChangeListener(new CircularViewPagerHandler(mViewPager));
mViewPager.setCurrentItem(1, false);
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
if (position == 0) {
mViewPager.setCurrentItem(3, false);
Log.d("TAG",
"Swiped before first page, looping and resetting to last page.");
} else if (position == 4) {
mViewPager.setCurrentItem(1, false);
Log.d("TAG",
"Swiped beyond last page, looping and resetting to first page.");
}
}
@Override
public void onPageScrollStateChanged(int state) {
Log.d("onPageScrollState", "state:" + state);
int …Run Code Online (Sandbox Code Playgroud) 我是新手firebase和nosql数据库
我正在尝试从Firebase中检索一些特定数据.我有一个节点universities,该节点有许多唯一标识符作为节点,它有更多的数据.我想name从每个节点检索.
请看看这个.
到目前为止我尝试过的方法:我尝试使用,addChildEventListener但这只是听第一个孩子.我调试了它,它只显示universities节点的第一个子节点的值.
myRef.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
List<University> university = new ArrayList<>();
Map<String, Object> td = (HashMap<String, Object>) dataSnapshot.getValue();
Log.d("TAG",dataSnapshot.getValue().toString());
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Run Code Online (Sandbox Code Playgroud)
我也试过了addValueEventListener.这会侦听整个节点并返回整个数据,但我无法为其提取"名称",因为它包含唯一标识符.
请引导我进入正确的方向.
myRef.addValueEventListener(new ValueEventListener() …Run Code Online (Sandbox Code Playgroud) 我正在开发Ride Sharing应用程序并选择Stripe付款程序.在应用程序中会发生什么,骑手可以提示给司机.为此,我使用这种方法,Rider将支付给App的stripe帐户,然后app将保持其百分比,然后它将剩余的金额转移到驱动程序的条带帐户.
到目前为止一切都很顺利.App已经成功地向骑手收费,但是对于将金额转移到驾驶员的条带账户有点困惑.我查看了条纹文档,说我需要驱动程序的条带帐户CONNECTED_STRIPE_ACCOUNT_ID,我无法找到它,也无法弄清楚它是什么.什么是条纹连接帐户?如何添加用户从android到我的平台条纹连接?
这是条带提供的代码段
Stripe.apiKey = PLATFORM_SECRET_KEY;
Map<String, Object> transferParams = new HashMap<String, Object>();
transferParams.put("amount", 1000);
transferParams.put("currency", "gbp");
transferParams.put("destination", {CONNECTED_STRIPE_ACCOUNT_ID});
Transfer.create(transferParams);
Run Code Online (Sandbox Code Playgroud)
如果有人向我解释这将是很好的.谢谢Ps我不想webview在任何情况下在我的应用程序中使用.我不被允许使用它.
我正在尝试制作像监护人应用程序的布局.我知道什么是gridview以及如何设计它并用数据等来膨胀它.
我想要设计什么?
这个布局包含图像而不是图像的项目,并且还有延迟加载.
我面临的问题是什么?
1-Confused应该与哪个viewi一起使用.GridView,ListView或RecyclerView.
2 - 如果我使用GridView,那么如何为某些项目设置不同的项目布局.
我试过了什么?
我尝试使用线性布局作为单独的xml然后我在运行时将xml添加到根布局.它有点工作,但问题上升,当我需要添加clicklistener来显示相关的帖子,因为将有超过100多个帖子数据.
如果有人引导我朝着正确的方向前进,那会很有帮助.谢谢!
编辑.经过这里的答案后.我用这种方法.我习惯了xml.然后我用适配器中的getViewType更改布局,但是没有给出这样的结果.我仍在寻找更有说服力的解决方案.
这是我厌倦的代码.
public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.ViewHolder>{
MainDTO mainDTO;
public RecyclerAdapter(MainDTO mainDTO){
this.mainDTO=mainDTO;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view;
ViewHolder viewHolder;
switch (viewType){
case 0:
view= LayoutInflater.from(parent.getContext()).inflate(R.layout.header,parent,false);
viewHolder=new ViewHolder(view,viewType);
return viewHolder;
default:
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.box,parent,false);
viewHolder=new ViewHolder(view,viewType);
return viewHolder;
}
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
ImageLoader imageLoader = ImageLoader.getInstance();
if(position == 0){
imageLoader.displayImage(mainDTO.getPosts().get(position).getThumbnail_images().getFull().getUrl(),holder.thumbnail);
holder.title.setText(mainDTO.getPosts().get(position).getTitle());
}
else if (position > 0 …Run Code Online (Sandbox Code Playgroud) 我正在努力配置 android 项目的 project.xml。我想遵循这个文件中提到的编码风格,我不希望 Android Studio 在这个文件本身中添加任何东西。
问题
在 Android Studio 项目中工作时,在自身中添加以下几行。
<option name="PACKAGES_TO_USE_STAR_IMPORTS">
<value>
<package name="java.util" alias="false" withSubpackages="false" />
<package name="kotlinx.android.synthetic" alias="false" withSubpackages="true" />
<package name="io.ktor" alias="false" withSubpackages="true" />
</value>
</option>
<option name="PACKAGES_IMPORT_LAYOUT">
<value>
<package name="" alias="false" withSubpackages="true" />
<package name="java" alias="false" withSubpackages="true" />
<package name="javax" alias="false" withSubpackages="true" />
<package name="kotlin" alias="false" withSubpackages="true" />
<package name="" alias="true" withSubpackages="true" />
</value>
</option>
Run Code Online (Sandbox Code Playgroud)
有什么办法可以阻止 android studio 添加这些行吗?我尝试了不同的方法来做到这一点,但无法产生想要的结果。
这是project.xml我想要关注的实际文件
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<option name="RIGHT_MARGIN" value="150" />
<DBN-PSQL>
<case-options …Run Code Online (Sandbox Code Playgroud) 我在我的应用程序中使用webservices.基本上我的应用程序显示了wordpress网站的帖子.用户还可以为帖子添加书签.我正在使用帖子网址保存sqlite中的所有书签帖子.现在的问题是我有很多不同的网址.我想在One中显示这些网址的内容ListView.
所有这些网址的json结构也是一样的.
我已经查看了与此问题相关的其他问题,但这些问题并没有多大帮助.
让我告诉你到目前为止我尝试了多少.
这是代码,这是代码 BookmarkActivity
ArrayList<HashMap<String,String>> allData;
String[] urlarray;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bookmark);
SqliteController controller= new SqliteController(this);
allData = controller.getAllData();
for (int i=0; i<allData.size(); i++){
String url=allData.get(i).get("link");
urlarray= new String[]{url};
}
for(int i=0; i <urlarray.length; i++){
MyAsyncTask task = new MyAsyncTask(i);
task.execute();
}
}
private class MyAsyncTask extends AsyncTask<Object,Void,String>{
int urlNumber;
HttpURLConnection connection=null;
BufferedReader reader=null;
public MyAsyncTask (int number){
this.urlNumber=number;
}
@Override
protected String doInBackground(Object... params) {
try {
URL url = new …Run Code Online (Sandbox Code Playgroud) Activity/Fragment当我从服务器得到响应时,我正在使用EventBus通知.到目前为止一切都运行良好,但是当我在同一个Fragment或两个网络中使用两个网络呼叫时会出现问题Activity.问题是onEvent(String response)从服务器获取两个响应的相同方法.反应call 1不同于call 2.
我提出了一个解决方案 - 我添加CallType了NetworkReqest但我无法通知活动/片段有关网络调用,因为post()只需要一个参数.
这是相关的代码 -
public class NetworkRequest {
EventBus eventBus = EventBus.getDefault();
public void stringParamRequest(String url, final Map<String, String> params,String callType) {
StringRequest jsonObjRequest = new StringRequest(Request.Method.POST, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
eventBus.post(response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d("volley", "Error: " + error.getMessage());
eventBus.post(error);
}
}) { …Run Code Online (Sandbox Code Playgroud)