2016-06-20 6 views
0

L'utilisateur de mon application peut créer une liste personnalisée avec des éléments parents et enfants. Je stocke ces informations dans un fichier xml. Je voudrais donner à l'utilisateur l'opportunité de partager ce fichier (Email etc.). Si l'autre utilisateur clique sur ce fichier, je voudrais ouvrir l'application et montrer les données dans ma liste! Ce que j'ai fait jusqu'ici: L'utilisateur peut créer un fichier xml et l'enregistrer dans son stockage. Le problème maintenant: Comment ouvrir l'application lorsque vous avez cliqué sur le fichier? Dois-je créer ma propre extension de fichier contenant les données xml?Android Partager et ouvrir le fichier XML

EDIT:

<activity 
      android:name=".activities.TrainingSimpleShowActivity" 
      android:label="@string/title_activity_training_simple_show" 
      android:screenOrientation="portrait"> 

      <intent-filter> 
       <action android:name="android.intent.action.VIEW" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
       <data android:scheme="file" 
        android:host="*" 
        android:pathPattern=".*\\.xml" 
        android:mimeType="*/*" /> 
      </intent-filter> 

     </activity> 

Répondre

1

Non, il vous suffit de définir un filtre intention pour votre application.

Par exemple:

<intent-filter> 
    <action android:name="android.intent.action.VIEW" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:scheme="file" android:host="*" android:pathPattern=".*\\.xml" android:mimeType="*/*" /> 
</intent-filter> 

Ainsi, lorsqu'un utilisateur clique pour ouvrir le fichier XML de votre application peut être proposé d'ouvrir ce fichier à partir du système Android.

Ensuite, vous devez obtenir l'intention dans votre application et gérer les données.

Intent intent = getIntent(); 
Uri data = intent.getData(); 

Peut-être que vous pouvez écrire un guide pour écrire ce fichier .xml pour les utilisateurs que vous, et quand votre application obtenir la date de l'intention que vous pouvez rechercher une balise ou un attribut particulier.

J'espère que cela vous aidera.

MISE À JOUR manifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.dojester13.experimentintent"> 

<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> 
     <intent-filter> 
      <action android:name="android.intent.action.VIEW" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <data android:scheme="file" android:host="*" android:pathPattern=".*\\.xml" android:mimeType="*/*" /> 
     </intent-filter> 
    </activity> 
</application> 

</manifest> 
+0

Où dois-je mettre le filtre dans l'intention manifeste? – XxGoliathusxX

+0

Dans le manifeste.xml, dans l'activité que vous voulez gérer les données, la principale, je pense dans ce cas. Je vous suggère de vérifier la documentation https://developer.android.com/guide/components/intents-filters.html –

+0

Ok, je l'ai ajouté à l'activité que je veux gérer. Mais quand je clique sur le fichier xml et que je dis "open with ..." il ne montre pas mon application dans la liste. – XxGoliathusxX