制作图片编辑文字

时间:2017-11-10 19:33:00

标签: android

我正在尝试使图像可点击,以便在点击它时会提示用户输入一些文本,这些文本将编辑发送到文本视图中的上一个结果,因此有点像编辑按钮,只有它是图像。我将图像设置为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();
            }
        });

    }
}

3 个答案:

答案 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.
           }
       });
    }

参考:https://stackoverflow.com/a/29048271/1297670

答案 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);
            }
        });

你应该从那里得到它!