如何将数据从android Activity发送到java类?

时间:2013-09-14 18:24:26

标签: java android class android-activity

我正在做一个简单的应用程序,从editText获取数据,然后它获取该文本并发送到java类(在类我需要它将字符串转换为utf8编码)。如何从活动中发送数据以及如何在java类中接收数据?

这是我的UTFencoder类:

public class UTFencoder {

public void main(String[] args) {

      String testString = encodeStringToUTF8("this is my app ... eskadenia");
      System.out.println(testString);
}

public static String encodeStringToUTF8(String stringToEncode) {
    String newValue = "";
    List<String> charactersCode = new ArrayList<String>();
    try {
        byte[] stringBytes = stringToEncode.getBytes("UTF-8");
        for (int i = 0; i < stringBytes.length; i++) {
            //System.out.println("utf value is " + stringBytes[i]);
            String value = String.valueOf(stringBytes[i]);

            int no = Integer.parseInt(value);
            String hex = Integer.toHexString(no);
            //System.out.println("Hex value is " + hex);
            for (int j = 0; j < hex.length(); j++) {
                charactersCode.add(String.valueOf(hex.charAt(j)));                  
            } 

        }
    } catch (UnsupportedEncodingException e) {
        System.out.println("Cannot encode " + stringToEncode
                + " to UTF-8, UnsupportedEncodingException");
    }

Iterator iterator =charactersCode.iterator();

while(iterator.hasNext()){
    Object element= iterator.next();
    System.out.print(element+" ");




}

    return newValue;
}

}

1 个答案:

答案 0 :(得分:6)

选项1:在android中你可以通过Intent或Intent发送数据,然后是Bundle.Like

Intent i = new Intent(current_class.this, linked_class.class);
   i.putextra("Key", value);

在另一个类中获取值(假设字符串值),如:

  String value = getIntent.getExtra("String key which you used when send value");

但是对于您的问题,我不确定它是否有帮助,但您可以在活动类中使用全局静态变量,并指定要在方法中发送的值...例如

选项2:

 class A{

   public static String _utfValue = "";

   void sendValue(){
       _utfValue  = "some value";
    }
 }

在java类中获取此值,如:

  String value = A._utfValue ;

选项3:您可以使用SharedPreference保存值并从其他类中获取。

选项4:您可以使用带有一些返回值的静态方法,并通过类名获取java类中的方法。

这里的所有选项都很粗糙。所以请检查一下,希望其中一个能帮到你。