Data Binding de collections; chevron '<' non reconnu dans activity_main.xml
Bonjour à tous,
j'ai beau chercher mes je ne trouve pas la solution à mon problème.
Dans le fichier activity_main.xml ou je déclare mes data l'attribut type de la balise variable, les chevrons (ArrayList<mon_type>).ne sont pas acceptés.
Voici mes sources:
build.gradle
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
dataBinding{
enabled = true
}
defaultConfig {
applicationId "com.ex.developer.bindcollections"
minSdkVersion 23
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'
} |
AndroidManifest.xml
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ex.developer.bindcollections">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest> |
MainActivity.java
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
package com.ex.developer.bindcollections;
import android.databinding.DataBindingUtil;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import com.ex.developer.bindcollections.databinding.ActivityMainBinding;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
User user = new User("Dugenou", "Jean-Edouard");
binding.setUser(user);
ArrayList<User> userList= new ArrayList<>();
userList.add(user);
binding.setUserList(userList);
ArrayList<String> stringList = new ArrayList<>();
stringList.add("Une chaîne bidon !");
binding.setUserList(userList);
ArrayList<Integer> intList = new ArrayList<>();
intList.add(1);
binding.setIntList(intList);
}
} |
User.java
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
package com.ex.developer.bindcollections;
/**
* A simple POJO
*/
public class User {
public final String nom;
public final String prenom;
public User(String nom, String prenom){
this.nom = nom;
this.prenom = prenom;
}
} |
Et le code posant problèmes
activity_main.xml
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<!-- import du POJO-->
<import type="com.ex.developer.bindcollections.User"/>
<!--import des bibliothèques JAVA -->
<import type="java.util.ArrayList"/>
<import type="java.lang.Integer"/>
<import type="java.lang.String"/>
<!-- définition des variable -->
<variable name="user" type="User"/>
<!-- lignes générant les erreurs -->
<variable name="userList" type="ArrayList<User>"/>
<variable name="stringList" type="ArrayList<String>"/>
<variable name="intList" type="ArrayList<Integer>"/>
</data>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="dummy"/>
</LinearLayout>
</layout> |
Si quelqu'un avait une idée ça m'aiderait beaucoup.
Merci