gpt4 book ai didi

安卓如何: pass and store user Input and return it back to main class(MainActivity)

转载 作者:行者123 更新时间:2023-11-30 16:49:21 25 4
gpt4 key购买 nike

我是 Android 开发新手, 我想通过 EditText 获取用户输入,并将其存储为字符串。通过 JNI 将该字符串传递给 c。当我按下按钮时,该字符串应该显示在 TextView 上,显示输入的内容和字符串的长度。在安卓中:

public class MainActivity extends AppCompatActivity {
static {
System.loadLibrary("native-lib");
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Button b1 = (Button) findViewById(R.id.bb1);
b1.setOnClickListener(
new Button.OnClickListener(){
public void onClick(View v){
TextView tv = (TextView) findViewById(R.id.sample_text);
EditText e1 = (EditText) findViewById(R.id.ee1);
TextView t2 = (TextView) findViewById(R.id.test1);
String str =e1.getText().toString();
tv.setText(HelloWorld(str)); // This should text
t2.setText("This should show length"HelloWorld(l)); //This should show length
}
}
);
}
public native String HelloWorld(String stri);`

在c文件中:

`#include "HelloWorld.h"
#include <jni.h>
#include <string.h>

JNIEXPORT jstring JNICALL
Java_com_example_james_myapplication_MainActivity_HelloWorld(JNIEnv *env,jobject jobj,jstring jstring1,jint l /* this */) {

const char *str = (*env) ->GetStringUTFChars(env,jstring1,NULL);

return (*env) ->NewStringUTF(env,str);}`

我无法显示输入的长度(我收到错误“无法解析符号l”。我不确定我是否正确地执行了代码,我的意思是将输入传递给c请帮忙!提前致谢。

最佳答案

HelloWorld(l) 无法获取字符串的长度。我不确定你为什么这么认为。要获取字符串的长度,请调用variablename.length()。所以这里就是

String result = HelloWorld(str);             
tv.setText(result); // This should text
t2.setText("This should show length" + result.length()); //This should show length

关于安卓如何: pass and store user Input and return it back to main class(MainActivity),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42611809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com