我正在尝试使图像可点击,以便在点击它时会提示用户输入一些文本,这些文本将编辑发送到文本视图中的上一个结果,因此有点像编辑按钮,只有它是图像。我将图像设置为onclickable并且它们当前显示Toast消息(仅用于测试目的。)
请注意,DisplayActivity textViews从Mainactivity代码获取当前数据。
public class DisplayActivity extends AppCompatActivity {
TextView textView;
ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display);
final Intent intent = getIntent();
final User user = (User) intent.getSerializableExtra("NAME");
textView = findViewById(R.id.textViewName);
textView.setText(user.getName().toString());
imageView = findViewById(R.id.imageViewName);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(DisplayActivity.this, "Edit name", Toast.LENGTH_SHORT).show();
}
});
}
}
答案 0 :(得分:1)
我想举例说明如何更新用户名。然后您可以类似地更新其他信息。
当用户点击图片时,显示一个EditText
接受用户输入的对话框:
// change the onClick function in your onCreate method
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showDialog();
}
});
// add a new method to your Activity
public void showDialog(){
AlertDialog.Builder alert = new AlertDialog.Builder(this);
final EditText edittext = new EditText(this);
//maybe show the username in the edittext, thanks to Thats Enam
edittext.setText(textView.getText());
alert.setMessage("Update your username");
alert.setTitle("Enter Your Title");
alert.setView(edittext);
alert.setPositiveButton("Yes Option", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Get he user input here
String YouEditTextValue = edittext.getText().toString();
// update the user name
textView.setText(YouEditTextValue);
}
});
alert.setNegativeButton("No Option", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// whatever you want to do with No option.
}
});
}
答案 1 :(得分:0)
对我来说看起来很容易,如果Toast工作正常,你只需要在Onclick中输入你要编辑文本的指令,而不是使用TextView而是EditText,它允许你加载以前的textView,然后到编辑,来自官方网站的这个Android培训应该给你一个关于EditText解释的better overview
还有一些其他post解释了如何做到这一点
答案 2 :(得分:0)
我不确定你真正的问题是什么,但这是我理解你可能想做的事情
<EditText
android:id="@+id/edittxt"
android:layout_width="100dp"
android:inputType="none"
android:hint="enter name"
android:layout_height="wrap_content"
android:background="@color/transparent"/>
<TextView
android:id="@+id/editbtn"
android:layout_width="100dp"
android:text="Edit"
android:layout_height="80dp" />
然后在onCreate中的代码中,您可以执行以下操作:
TextView editbtn;
EditText edittxt;
final editbtn = (TextView) findViewById(R.id.editbtn);
edittxt = (EditText) findViewById(R.id.edittxt);
edittxt.clearFocus();
edittxt.setFocusable(false);
editbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
edittxt.setFocusable(true);
}
});
你应该从那里得到它!