2

我正在做一个简单的应用程序,它从中获取数据,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;
}

}
4

1 回答 1

7

选项 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 类中获取该方法。

这里的所有选项都很粗糙。所以只需检查一下,希望其中之一对您有所帮助。

于 2013-09-14T19:15:22.253 回答