2016-05-19 5 views
0

複数のボタン名をアンドロイドで取得してファイルに保存する必要があります。 例:saxをゲッターとセッターとして使用する

Button1のテキストは、人生は良いです; Button2のテキストは:人生は良くない

「ボタン1、人生は良いです;ボタン2、人生は良くありません」はlog.txtに保存してください。 もし私がそのようなlog.txtファイルに変更を加えると(更新を可能にする):「Button1、人生はかなり良い; Button2、人生はウェルカム」より、

Button1のテキストは:かなり良い; Button2のテキストは:人生は幸福ではありません

どうすればいいですか、ありがとうございます。

+0

なぜこのような小さなxmlのために、なぜサックスを使用していますか? dom、jdom、dom4j、vtd-xmlはどうですか? –

+0

これは元のものが大きいサンプルです。 – boy

+0

ファイルの大きさはどれくらいですか? –

答えて

0

これを行う簡単な方法があります。文字列リソースを使用できます。あなたのレイアウトXMLでString Resources | Android Developers

<resources> 
    <string name="life_is_x">Life is %s</string> 
    <string name="good">good</string> 
    <string name="not_good">not good</string> 
    <string name="quite_good">quite good</string> 
</resources> 

、あなたはあなたのボタンを属性android:textの値を配置する必要がありません(あなたがtools:textを指定した場合のみ値がなく、あなたの中のAndroid Studioのグ​​ラフィカルなレイアウト設計者に表示されますが、設計するのに有用であるアプリ、)

次に、あなたのコードで:。

Context context = button.getContext(); 
    String lifeStr; 
    switch (lifeEnum) { 
    case GOOD: 
     lifeStr = context.getString(R.string.good); 
     break; 
    case NOT_GOOD: 
     lifeStr = context.getString(R.string.not_good); 
     break; 
    case QUITE_GOOD: 
     lifeStr = context.getString(R.string.quite_good); 
     break; 
    } 
    String title = context.getString(R.string.life_is_x, lifeStr); 
    // lifeStr will replace the %s placeholder in life_is_x 
    button.setText(title); 
+0

あなたの答えをありがとうが、私はすでにリソースファイルを使用しています。問題は、私は最後のテキストを覚えてテキストを変更することが可能なプログラムを作成する必要があるということです。 – boy

+0

デバイス上のAndroidアプリ、または開発中のスタンドアロンJavaプログラムを意味しますか? –

+0

私はアンドロイドデバイスを意味します。だから、私はファイルにサックスXMLのセッターは、ボタンIDと最後のテキストを格納するのに役立つかもしれないと思うプログラムが再起動された場合、存在する場合ボタンのテキストを読み込むことが可能です。どのように手がかりをそれには? – boy

0

私は実際に私はこのサイトを使用し、JDOMパーサと私の問題を解決していますhttp://www.tutorialspoint.com/java_xml/java_jdom_parse_document.htm xmlファイルを作成するこのリンクもhttp://www.tutorialspoint.com/java_xml/java_dom_create_document.htmです。私にアイデアをくれてありがとう。私は地元のアンドロイドデバイスでxml操作をしたいと思っている人にはhttp://www.tutorialspoint.com/java_xml/を見てもらいたいと勧めています。あなたはxmlの例を見つけることができます。

<?xml version="1.0"?> 
<class> 
    <student rollno="393"> 
     <firstname>dinkar</firstname> 
     <lastname>kad</lastname> 
     <nickname>dinkar</nickname> 
     <marks>85</marks> 
    </student> 
    <student rollno="493"> 
     <firstname>Vaneet</firstname> 
     <lastname>Gupta</lastname> 
     <nickname>vinni</nickname> 
     <marks>95</marks> 
    </student> 
    <student rollno="593"> 
     <firstname>jasvir</firstname> 
     <lastname>singn</lastname> 
     <nickname>jazz</nickname> 
     <marks>90</marks> 
    </student> 
</class> 


import java.io.File; 
import java.io.IOException; 
import java.util.List; 

import org.jdom2.Attribute; 
import org.jdom2.Document; 
import org.jdom2.Element; 
import org.jdom2.JDOMException; 
import org.jdom2.input.SAXBuilder; 

public class JDomParserDemo { 
    public static void main(String[] args) { 
     try { 
     File inputFile = new File("input.txt"); 

     SAXBuilder saxBuilder = new SAXBuilder(); 

     Document document = saxBuilder.build(inputFile); 

     System.out.println("Root element :" 
      + document.getRootElement().getName()); 

     Element classElement = document.getRootElement(); 

     List<Element> studentList = classElement.getChildren(); 
     System.out.println("----------------------------"); 

     for (int temp = 0; temp < studentList.size(); temp++) {  
      Element student = studentList.get(temp); 
      System.out.println("\nCurrent Element :" 
       + student.getName()); 
      Attribute attribute = student.getAttribute("rollno"); 
      System.out.println("Student roll no : " 
       + attribute.getValue()); 
      System.out.println("First Name : " + student.getChild("firstname").getText()); 
      System.out.println("Last Name : "+ student.getChild("lastname").getText()); 
      System.out.println("Nick Name : "+ student.getChild("nickname").getText()); 
      System.out.println("Marks : "+ student.getChild("marks").getText());       
     } 
     }catch(JDOMException e){ 
     e.printStackTrace(); 
     }catch(IOException ioe){ 
     ioe.printStackTrace(); 
     } 
    } 
} 
関連する問題