尝试使用支持库中的新RecyclerView。我使用SDK管理器下载了支持库的20个更新。
我已经将jar文件添加到libs文件夹中-并添加到了构建路径中-使用RecyclerView祝您好运。
根据Android开发人员的API尝试也使用gradle依赖项-不确定这是否是正确的地方-此页面与AndroidTV相关性更高:
com.android.support:recyclerview-v7:20.0.+
无法gradle同步项目。
有任何想法吗?
尝试使用支持库中的新RecyclerView。我使用SDK管理器下载了支持库的20个更新。
我已经将jar文件添加到libs文件夹中-并添加到了构建路径中-使用RecyclerView祝您好运。
根据Android开发人员的API尝试也使用gradle依赖项-不确定这是否是正确的地方-此页面与AndroidTV相关性更高:
com.android.support:recyclerview-v7:20.0.+
无法gradle同步项目。
有任何想法吗?
Answers:
我使用以下几行创建了它,这对我有用。
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
对于AndroidX
implementation 'androidx.recyclerview:recyclerview:1.1.0'
implementation 'androidx.cardview:cardview:1.0.0'
有关完整的教程,请参见此处
弄清楚了。
您必须添加以下gradle依赖项:
compile 'com.android.support:recyclerview-v7:+'
我编辑的另一个问题是compileSdkVersion
。显然,您必须对它进行编译android-L
您的build.gradle文件应如下所示:
apply plugin: 'android'
android {
compileSdkVersion 'android-L'
buildToolsVersion '19.1.0'
[...]
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:recyclerview-v7:+'
}
<uses-sdk />
AndroidManifest.xml文件中的声明替换为:<uses-sdk tools:node="replace" />
现在可以通过在应用gradle中编译设计依赖项来添加RecyclerView:
dependencies {
...
compile 'com.android.support:design:24.0.0'
}
如果您具有已编译的SDK版本22.2.0,则为回收者视图添加以下依赖项,并为cardview的支持添加cardview的其他依赖项
// 用于将所有库包含在目录lib中
compile fileTree(include: ['*.jar'], dir: 'libs')
// 用于支持appcompat
compile 'com.android.support:appcompat-v7:22.2.0'
// 用于包括google支持设计(它可以实现2.3及更高版本的材质设计主题)
` compile'com.android.support:design:22.2。 0'
用于添加回收者视图,请使用以下依赖项
compile 'com.android.support:recyclerview-v7:22.2.0'
之后,单击Build-> rebuild project,然后完成。
compile 'com.android.support:recyclerview-v7:24.2.1'
这对我有用。试试吧。
在中包含依赖项build.gradle
,并将项目与gradle
文件同步
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:25.1.0'
//include the revision no, i.e 25.1.1
implementation 'com.android.support:recyclerview-v7:25.1.1'
}
包括修订版本(此处为25.1.1)以避免生成不可预测的版本,请检查库修订版本
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
以上对我build.gradle
有用
-转到activity_main.xml中的DESIGN部分 -在拖放托盘中选择appCompactivity- 在appCompactivity中选择RecyclerView-在 选择时将出现一个对话框,单击确定 -您的项目应用程序:gradle将自动更新
我的依赖
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:25.1.0'
//RecyclerView dependency
compile 'com.android.support:recyclerview-v7:25.1.0'
// Instrumentation dependencies use androidTestCompile
// (as opposed to testCompile for local unit tests run in the JVM)
androidTestCompile 'junit:junit:4.12'
androidTestCompile 'com.android.support:support-annotations:25.1.0'
androidTestCompile 'com.android.support.test:runner:0.5'
androidTestCompile 'com.android.support.test:rules:0.5'
}
我只添加了编译'com.android.support:recyclerview-v7:25.1.0'。最重要的是增加RecycleView依赖的值,作为同一版本的程序兼容性
如果您使用的是Android Studio的更新版本或2018版本...
compile 'com.android.support:recyclerview-v7:+'
将显示以下消息“配置'编译'已过时,并已由'实现'和'api'代替。它将在2018年底删除。”
试试这个
implementation 'com.android.support:recyclerview-v7:+'
我曾经用这个为我工作。需要考虑的一件事是appcompat
您使用的是哪个版本。我正在使用,appcompat-v7:26.+
所以这对我有用。
implementation 'com.android.support:recyclerview-v7:26.+'
将RecyclerView导入项目的一种好方法是RecyclerViewLib。这是一个开放源代码库,它提取了RecyclerView以使其安全且易于实现。您可以在此处阅读作者的博客文章。
在代码中添加以下行作为gradle依赖项:
dependencies {
compile 'com.twotoasters.RecyclerViewLib:library:1.0.+@aar'
}
有关如何引入gradle依赖关系的更多信息:
波斯尼亚,您很讨厌那是对的。Gradle看起来很复杂,但功能极其强大且非常灵活。一切都以语言习惯完成,学习gradle系统正在学习另一种语言,以便您可以构建自己的Android应用。现在很痛,但从长远来看,您会爱上它。
查看同一应用程序的build.gradle。https://github.com/twotoasters/RecyclerViewLib/blob/master/sample/build.gradle执行此操作的地方是将lib引入模块(也称为示例应用程序)
compile (project (':library')) {
exclude group: 'com.android.support', module: 'support-v4'
}
请注意此文件的位置。这不是顶层build.gradle
因为lib源代码在同一个项目中,所以可以使用simple来实现':library'
。该exclude
告诉库使用示例应用程序的支持v4。那不是必须的,但是个好主意。您的项目中没有或不想拥有lib的源,因此您必须指向Internet。在模块/应用程序的build.gradle中,应将该答案开头的那一行放在同一位置。或者,如果遵循示例示例,则可以替换':library'
为' com.twotoasters.RecyclerViewLib:library:1.0.+@aar '
并使用排除项。
Could not find any version that matches com.twotoasters.RecyclerViewLib:library:1.0.+
-/
import android.support.v7.widget.RecyclerView;
在Android Studio中,导入并不像人们希望的那样直观。尝试导入此位,看看有什么帮助!
这对我有用
定义互联网权限
<uses-permission android:name="android.permission.INTERNET" >
添加依赖
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.google.code.gson:gson:2.6.2'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'com.google.code.gson:gson:2.6.2'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'
compile 'com.squareup.okhttp3:okhttp:3.4.1'
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile ('com.squareup.retrofit2:converter-simplexml:2.1.0'){
exclude group: 'stax', module: 'stax-api'
exclude group: 'stax', module: 'stax'
exclude group: 'xpp3', module: 'xpp3'
}
在主要活动中
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import android.widget.Toast;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.simplexml.SimpleXmlConverterFactory;
public class MainActivity extends AppCompatActivity {
private BreakfastMenu breakfastMenu;
List<BreakfastMenu> list;
TextView responseText;
APIInterface apiInterface;
String name;
String price;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
responseText=(TextView)findViewById(R.id.reponseText);
apiInterface = APIClient.getClient().create(APIInterface.class);
/**
GET List Resources
**/
Call<BreakfastMenu> call = apiInterface.getBreakfastMenu();
call.enqueue(new Callback<BreakfastMenu>() {
@Override
public void onResponse(Call<BreakfastMenu> call, Response<BreakfastMenu> response) {
Log.d("TAG", response.code() + "");
String displayResponse = "";
BreakfastMenu resource = response.body();
System.out.println(displayResponse+"display response ");
for (Food food : resource.getFoodList())
{
name=food.getName();
price=food.getPrice();
System.out.println(name+price+"=========================================");
displayResponse += food.getName() + " " + food.getPrice()+"\n"+"\n";
Toast.makeText(MainActivity.this,name+price,Toast.LENGTH_LONG).show();
}
responseText.setText(displayResponse);
}
@Override
public void onFailure(Call<BreakfastMenu> call, Throwable t) {
call.cancel();
}
});
}
}
使APIClient.java类
import okhttp3.OkHttpClient;
import okhttp3.logging.HttpLoggingInterceptor;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
import retrofit2.converter.simplexml.SimpleXmlConverterFactory;
class APIClient {
private static Retrofit retrofit = null;
static Retrofit getClient() {
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient client = new OkHttpClient.Builder().addInterceptor(interceptor).build();
retrofit = new Retrofit.Builder()
.baseUrl("https://www.w3schools.com/")
.addConverterFactory(SimpleXmlConverterFactory.create())
.build();
return retrofit;
}
}
enter code here
Make APIInterface.java
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Headers;
import retrofit2.http.POST;
import retrofit2.http.Query;
interface APIInterface {
@GET("xml/simple.xml")
@Headers({"Accept: application/xml",
"User-Agent: Retrofit-Sample-App"})
Call<BreakfastMenu> getBreakfastMenu();
}
In BreakfastMenu.java
import org.simpleframework.xml.ElementList;
import org.simpleframework.xml.Root;
import java.util.List;
@Root(name = "breakfast_menu")
public class BreakfastMenu
{
@ElementList(inline = true)
private List<Food> foodList;
public BreakfastMenu()
{
}
public List<Food> getFoodList()
{
return foodList;
}
public void setFoodList(List<Food> foodList)
{
this.foodList = foodList;
}
}
制作Food.java
import org.simpleframework.xml.Element;
import org.simpleframework.xml.Root;
@Root(name = "food")
public class Food
{
@Element(name = "name")
private String name;
@Element(name = "price")
private String price;
@Element(name = "description")
private String description;
@Element(name = "calories")
private String calories;
public Food()
{
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getPrice()
{
return price;
}
public void setPrice(String price)
{
this.price = price;
}
public String getDescription()
{
return description;
}
public void setDescription(String description)
{
this.description = description;
}
public String getCalories()
{
return calories;
}
public void setCalories(String calories)
{
this.calories = calories;
}
}
在activity_main.xml中
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/reponseText"
android:layout_width="match_parent"
android:layout_height="600dp"
/>
</Linear Layout>
只是更新:
现在“编译”已过时;它已被“实现”和“ api”替换。我相信它将在2018年底删除。有关更多信息,请参见:http : //d.android.com/r/tools/update-dependency-configurations.html
同样,所有com.android.support库都必须使用完全相同的版本规范;此外,诸如appcompat-v7和recyclerview-v7之类的支持库不应使用与compileSdkVersion不同的版本。