如何在 imageview 中创建一个清除按钮?
How to create a clear button out out imageview?
所以我目前正在做一个即将到期的项目。
它包括制作一个带有数字按钮等的 phone 应用程序。
老师给我们提的一个问题是添加一个Imageview,当TextView超过10个字符的时候,把它当做按钮清除TextView。
感谢任何帮助,我对 Android 编码还是很陌生,所以我的知识很差哈哈
这是我的 Java 代码:
Button no1,no2,no3,no4,no5,no6,no7,no8,no9,no0;
TextView tv1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
no1=(Button) findViewById(R.id.no1);
no2=(Button) findViewById(R.id.no2);
no3=(Button) findViewById(R.id.no3);
no4=(Button) findViewById(R.id.no4);
no5=(Button) findViewById(R.id.no5);
no6=(Button) findViewById(R.id.no6);
no7=(Button) findViewById(R.id.no7);
no8=(Button) findViewById(R.id.no8);
no9=(Button) findViewById(R.id.no9);
no0=(Button) findViewById(R.id.no0);
tv1=(TextView)findViewById(R.id.tv1);
no1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tv1.setText(tv1.getText()+"1");
}
});
no2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tv1.setText(tv1.getText()+"2");
}
});
no3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tv1.setText(tv1.getText()+"3");
}
});
no4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tv1.setText(tv1.getText()+"4");
}
});
no5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tv1.setText(tv1.getText()+"5");
}
});
no6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tv1.setText(tv1.getText()+"6");
}
});
no7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tv1.setText(tv1.getText()+"7");
}
});
no8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tv1.setText(tv1.getText()+"8");
}
});
no9.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tv1.setText(tv1.getText()+"9");
}
});
no0.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tv1.setText(tv1.getText()+"0");
}
});
}
}
这是我的 XML:
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/tv1"
android:layout_width="262dp"
android:layout_height="85dp"
android:layout_marginTop="4dp"
android:gravity="center|right"
android:textSize="30sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:maxLength="10"
android:inputType="phone" />
<ImageView
android:id="@+id/btnclear"
android:layout_width="79dp"
android:layout_height="73dp"
android:layout_marginStart="20dp"
android:layout_marginTop="16dp"
android:clickable="true"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/phone_on" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="345dp"
android:layout_height="404dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.994">
<Button
android:id="@+id/no7"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="7"
android:textSize="30sp"
app:layout_constraintBottom_toTopOf="@+id/no4"
app:layout_constraintEnd_toStartOf="@+id/no8"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/no8"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="8"
android:textSize="30sp"
app:layout_constraintBottom_toTopOf="@+id/no5"
app:layout_constraintEnd_toStartOf="@+id/no9"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/no7"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/no9"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="9"
android:textSize="30sp"
app:layout_constraintBottom_toTopOf="@+id/no6"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/no8"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/no4"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="4"
android:textSize="30sp"
app:layout_constraintBottom_toTopOf="@+id/no1"
app:layout_constraintEnd_toStartOf="@+id/no5"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/no7" />
<Button
android:id="@+id/no5"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="5"
android:textSize="30sp"
app:layout_constraintBottom_toTopOf="@+id/no2"
app:layout_constraintEnd_toStartOf="@+id/no6"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/no4"
app:layout_constraintTop_toBottomOf="@+id/no8" />
<Button
android:id="@+id/no6"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="6"
android:textSize="30sp"
app:layout_constraintBottom_toTopOf="@+id/no3"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/no5"
app:layout_constraintTop_toBottomOf="@+id/no9" />
<Button
android:id="@+id/no1"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="1"
android:textSize="30sp"
app:layout_constraintBottom_toTopOf="@+id/etoile"
app:layout_constraintEnd_toStartOf="@+id/no2"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/no4" />
<Button
android:id="@+id/no2"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="2"
android:textSize="30sp"
app:layout_constraintBottom_toTopOf="@+id/no0"
app:layout_constraintEnd_toStartOf="@+id/no3"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/no1"
app:layout_constraintTop_toBottomOf="@+id/no5" />
<Button
android:id="@+id/no3"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="3"
android:textSize="30sp"
app:layout_constraintBottom_toTopOf="@+id/Hashtag"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/no2"
app:layout_constraintTop_toBottomOf="@+id/no6" />
<Button
android:id="@+id/etoile"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="*"
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/no0"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/no1" />
<Button
android:id="@+id/no0"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="0"
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/Hashtag"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/etoile"
app:layout_constraintTop_toBottomOf="@+id/no2" />
<Button
android:id="@+id/Hashtag"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="#"
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/no0"
app:layout_constraintTop_toBottomOf="@+id/no3" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
这是我的设计截图:
Design part
感谢帮助
首先,您需要在 XML:
中使您的 ImageView 可点击
android:clickable="true"
然后您可以像设置其他按钮一样在 ImageView 上设置 OnClickListener
。
所以我目前正在做一个即将到期的项目。
它包括制作一个带有数字按钮等的 phone 应用程序。
老师给我们提的一个问题是添加一个Imageview,当TextView超过10个字符的时候,把它当做按钮清除TextView。
感谢任何帮助,我对 Android 编码还是很陌生,所以我的知识很差哈哈
这是我的 Java 代码:
Button no1,no2,no3,no4,no5,no6,no7,no8,no9,no0;
TextView tv1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
no1=(Button) findViewById(R.id.no1);
no2=(Button) findViewById(R.id.no2);
no3=(Button) findViewById(R.id.no3);
no4=(Button) findViewById(R.id.no4);
no5=(Button) findViewById(R.id.no5);
no6=(Button) findViewById(R.id.no6);
no7=(Button) findViewById(R.id.no7);
no8=(Button) findViewById(R.id.no8);
no9=(Button) findViewById(R.id.no9);
no0=(Button) findViewById(R.id.no0);
tv1=(TextView)findViewById(R.id.tv1);
no1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tv1.setText(tv1.getText()+"1");
}
});
no2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tv1.setText(tv1.getText()+"2");
}
});
no3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tv1.setText(tv1.getText()+"3");
}
});
no4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tv1.setText(tv1.getText()+"4");
}
});
no5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tv1.setText(tv1.getText()+"5");
}
});
no6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tv1.setText(tv1.getText()+"6");
}
});
no7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tv1.setText(tv1.getText()+"7");
}
});
no8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tv1.setText(tv1.getText()+"8");
}
});
no9.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tv1.setText(tv1.getText()+"9");
}
});
no0.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tv1.setText(tv1.getText()+"0");
}
});
}
}
这是我的 XML:
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/tv1"
android:layout_width="262dp"
android:layout_height="85dp"
android:layout_marginTop="4dp"
android:gravity="center|right"
android:textSize="30sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:maxLength="10"
android:inputType="phone" />
<ImageView
android:id="@+id/btnclear"
android:layout_width="79dp"
android:layout_height="73dp"
android:layout_marginStart="20dp"
android:layout_marginTop="16dp"
android:clickable="true"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/phone_on" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="345dp"
android:layout_height="404dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.994">
<Button
android:id="@+id/no7"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="7"
android:textSize="30sp"
app:layout_constraintBottom_toTopOf="@+id/no4"
app:layout_constraintEnd_toStartOf="@+id/no8"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/no8"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="8"
android:textSize="30sp"
app:layout_constraintBottom_toTopOf="@+id/no5"
app:layout_constraintEnd_toStartOf="@+id/no9"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/no7"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/no9"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="9"
android:textSize="30sp"
app:layout_constraintBottom_toTopOf="@+id/no6"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/no8"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/no4"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="4"
android:textSize="30sp"
app:layout_constraintBottom_toTopOf="@+id/no1"
app:layout_constraintEnd_toStartOf="@+id/no5"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/no7" />
<Button
android:id="@+id/no5"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="5"
android:textSize="30sp"
app:layout_constraintBottom_toTopOf="@+id/no2"
app:layout_constraintEnd_toStartOf="@+id/no6"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/no4"
app:layout_constraintTop_toBottomOf="@+id/no8" />
<Button
android:id="@+id/no6"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="6"
android:textSize="30sp"
app:layout_constraintBottom_toTopOf="@+id/no3"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/no5"
app:layout_constraintTop_toBottomOf="@+id/no9" />
<Button
android:id="@+id/no1"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="1"
android:textSize="30sp"
app:layout_constraintBottom_toTopOf="@+id/etoile"
app:layout_constraintEnd_toStartOf="@+id/no2"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/no4" />
<Button
android:id="@+id/no2"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="2"
android:textSize="30sp"
app:layout_constraintBottom_toTopOf="@+id/no0"
app:layout_constraintEnd_toStartOf="@+id/no3"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/no1"
app:layout_constraintTop_toBottomOf="@+id/no5" />
<Button
android:id="@+id/no3"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="3"
android:textSize="30sp"
app:layout_constraintBottom_toTopOf="@+id/Hashtag"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/no2"
app:layout_constraintTop_toBottomOf="@+id/no6" />
<Button
android:id="@+id/etoile"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="*"
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/no0"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/no1" />
<Button
android:id="@+id/no0"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="0"
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/Hashtag"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/etoile"
app:layout_constraintTop_toBottomOf="@+id/no2" />
<Button
android:id="@+id/Hashtag"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="#"
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/no0"
app:layout_constraintTop_toBottomOf="@+id/no3" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
这是我的设计截图: Design part
感谢帮助
首先,您需要在 XML:
中使您的 ImageView 可点击android:clickable="true"
然后您可以像设置其他按钮一样在 ImageView 上设置 OnClickListener
。