Android 安卓文本视图:取消删除以前被删除的文本

Android 安卓文本视图:取消删除以前被删除的文本,android,textview,strikethrough,Android,Textview,Strikethrough,我在互联网上搜索了一下,发现要取消删除被删除的文本,我需要使用以下代码: tv.setPaintFlags tv.getPaintFlags&~Paint.STRIKE\u THRU\u TEXT\u FLAG 其中tv代表某个TextView变量。这对我来说根本不管用。我错过了什么 我将非常感谢你的帮助 下面是布局文件中一个TextView小部件的定义: <TextView android:id="@+id/tv1" android:layout_width="wr

我在互联网上搜索了一下,发现要取消删除被删除的文本,我需要使用以下代码:

tv.setPaintFlags tv.getPaintFlags&~Paint.STRIKE\u THRU\u TEXT\u FLAG

其中tv代表某个TextView变量。这对我来说根本不管用。我错过了什么

我将非常感谢你的帮助

下面是布局文件中一个TextView小部件的定义:

 <TextView
     android:id="@+id/tv1"
     android:layout_width="wrap_content"
     android:layout_height="65dp"
     android:background="@drawable/roundedyellowbtn1"
     android:text="@string/choice1"
     android:textSize="35sp"
     android:onClick="onClick"
     android:clickable="true"
     android:layout_margin="5dp" />
你觉得有什么不对吗

以下是全部代码:

public class MyClass extends Activity {

TextView tv1;
TextView tv2;
TextView tv3;
TextView tv4;
TextView tv5;
TextView tv6;
TextView tv7;
TextView tv8;
TextView tv9;
TextView tv10;
TextView tv11;
TextView tv12;
TextView tv13;
TextView tv14;
TextView tv15;
TextView tv16;
TextView tv17;
TextView tv18;
TextView tv19;
TextView tv20;
TextView tv21;
TextView tv22;
TextView tv23;
TextView tv24;
TextView tv25;
TextView tv26;
TextView tv27;
TextView tv28;
TextView tv29;
TextView tv30;
TextView tv31;
TextView tv32;
TextView tv33;
TextView tv34;
TextView tv35;
TextView tv36;
TextView tv37;
TextView tv38;
TextView tv39;
TextView tv40;
TextView tv41;
TextView tv42;
TextView tv43;
TextView tv44;
TextView tv45;
TextView tv46;
TextView tv47;
TextView tv48;
TextView tv49;
TextView tv50;
TextView tv51;
TextView tv52;
TextView tv53;
TextView tv54;
TextView tv55;

TextView txtView_A;
TextView txtView_B;
TextView txtView_C;
TextView txtView_D;
TextView txtView_E;
TextView txtView_F;
TextView txtView_A_v;
TextView txtView_B_v;
TextView txtView_C_v;
TextView txtView_D_v;
TextView txtView_E_v;
TextView txtView_F_v;

String number; //the lotto number
int nrOfStrikes = 0; //6 for each panel
int totalNrOfStrikes = 0; // 36 in all
String panelContents = "";
int tviewId = 0;
TextView tview;
TextView[] chosen = new TextView[6]; // to remember the 6 choices so that they are
                                 // "unstrike" and can be chosen again

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

    tv1 = (TextView) findViewById(R.id.tv1);
    tv2 = (TextView) findViewById(R.id.tv2);
    tv3 = (TextView) findViewById(R.id.tv3);
    tv4 = (TextView) findViewById(R.id.tv4);
    tv5 = (TextView) findViewById(R.id.tv5);
    tv6 = (TextView) findViewById(R.id.tv6);
    tv7 = (TextView) findViewById(R.id.tv7);
    tv8 = (TextView) findViewById(R.id.tv8);
    tv9 = (TextView) findViewById(R.id.tv9);
    tv10 = (TextView) findViewById(R.id.tv10);
    tv11 = (TextView) findViewById(R.id.tv11);
    tv12 = (TextView) findViewById(R.id.tv12);
    tv13 = (TextView) findViewById(R.id.tv13);
    tv14 = (TextView) findViewById(R.id.tv14);
    tv15 = (TextView) findViewById(R.id.tv15);
    tv16 = (TextView) findViewById(R.id.tv16);
    tv17 = (TextView) findViewById(R.id.tv17);
    tv18 = (TextView) findViewById(R.id.tv18);
    tv19 = (TextView) findViewById(R.id.tv19);
    tv20 = (TextView) findViewById(R.id.tv20);
    tv21 = (TextView) findViewById(R.id.tv21);
    tv22 = (TextView) findViewById(R.id.tv22);
    tv23 = (TextView) findViewById(R.id.tv23);
    tv24 = (TextView) findViewById(R.id.tv24);
    tv25 = (TextView) findViewById(R.id.tv25);
    tv26 = (TextView) findViewById(R.id.tv26);
    tv27 = (TextView) findViewById(R.id.tv27);
    tv28 = (TextView) findViewById(R.id.tv28);
    tv29 = (TextView) findViewById(R.id.tv29);
    tv30 = (TextView) findViewById(R.id.tv30);
    tv31 = (TextView) findViewById(R.id.tv31);
    tv32 = (TextView) findViewById(R.id.tv32);
    tv33 = (TextView) findViewById(R.id.tv33);
    tv34 = (TextView) findViewById(R.id.tv34);
    tv35 = (TextView) findViewById(R.id.tv35);
    tv36 = (TextView) findViewById(R.id.tv36);
    tv37 = (TextView) findViewById(R.id.tv37);
    tv38 = (TextView) findViewById(R.id.tv38);
    tv39 = (TextView) findViewById(R.id.tv39);
    tv40 = (TextView) findViewById(R.id.tv40);
    tv41 = (TextView) findViewById(R.id.tv41);
    tv42 = (TextView) findViewById(R.id.tv42);
    tv43 = (TextView) findViewById(R.id.tv43);
    tv44 = (TextView) findViewById(R.id.tv44);
    tv45 = (TextView) findViewById(R.id.tv45);
    tv46 = (TextView) findViewById(R.id.tv46);
    tv47 = (TextView) findViewById(R.id.tv47);
    tv48 = (TextView) findViewById(R.id.tv48);
    tv49 = (TextView) findViewById(R.id.tv49);
    tv50 = (TextView) findViewById(R.id.tv50);
    tv51 = (TextView) findViewById(R.id.tv51);
    tv52 = (TextView) findViewById(R.id.tv52);
    tv53 = (TextView) findViewById(R.id.tv53);
    tv54 = (TextView) findViewById(R.id.tv54);
    tv55 = (TextView) findViewById(R.id.tv55);

    txtView_A_v = (TextView) findViewById(R.id.TextView_A_value);
    txtView_B_v = (TextView) findViewById(R.id.TextView_B_value);
    txtView_C_v = (TextView) findViewById(R.id.TextView_C_value);
    txtView_D_v = (TextView) findViewById(R.id.TextView_D_value);
    txtView_E_v = (TextView) findViewById(R.id.TextView_E_value);
    txtView_F_v = (TextView) findViewById(R.id.TextView_F_value);

    txtView_A = (TextView) findViewById(R.id.TextView_A);
    txtView_B = (TextView) findViewById(R.id.TextView_B);
    txtView_C = (TextView) findViewById(R.id.TextView_C);
    txtView_D = (TextView) findViewById(R.id.TextView_D);
    txtView_E = (TextView) findViewById(R.id.TextView_E);
    txtView_F = (TextView) findViewById(R.id.TextView_F);

    tv1.setOnClickListener(myHandler);
    tv2.setOnClickListener(myHandler);
    tv3.setOnClickListener(myHandler);
    tv4.setOnClickListener(myHandler);
    tv5.setOnClickListener(myHandler);
    tv6.setOnClickListener(myHandler);
    tv7.setOnClickListener(myHandler);
    tv8.setOnClickListener(myHandler);
    tv9.setOnClickListener(myHandler);
    tv10.setOnClickListener(myHandler);
    tv11.setOnClickListener(myHandler);
    tv12.setOnClickListener(myHandler);
    tv13.setOnClickListener(myHandler);
    tv14.setOnClickListener(myHandler);
    tv15.setOnClickListener(myHandler);
    tv16.setOnClickListener(myHandler);
    tv17.setOnClickListener(myHandler);
    tv18.setOnClickListener(myHandler);
    tv19.setOnClickListener(myHandler);
    tv20.setOnClickListener(myHandler);
    tv21.setOnClickListener(myHandler);
    tv22.setOnClickListener(myHandler);
    tv23.setOnClickListener(myHandler);
    tv24.setOnClickListener(myHandler);
    tv25.setOnClickListener(myHandler);
    tv26.setOnClickListener(myHandler);
    tv27.setOnClickListener(myHandler);
    tv28.setOnClickListener(myHandler);
    tv29.setOnClickListener(myHandler);
    tv30.setOnClickListener(myHandler);
    tv31.setOnClickListener(myHandler);
    tv32.setOnClickListener(myHandler);
    tv33.setOnClickListener(myHandler);
    tv34.setOnClickListener(myHandler);
    tv35.setOnClickListener(myHandler);
    tv36.setOnClickListener(myHandler);
    tv37.setOnClickListener(myHandler);
    tv38.setOnClickListener(myHandler);
    tv39.setOnClickListener(myHandler);
    tv40.setOnClickListener(myHandler);
    tv41.setOnClickListener(myHandler);
    tv42.setOnClickListener(myHandler);
    tv43.setOnClickListener(myHandler);
    tv44.setOnClickListener(myHandler);
    tv45.setOnClickListener(myHandler);
    tv46.setOnClickListener(myHandler);
    tv47.setOnClickListener(myHandler);
    tv48.setOnClickListener(myHandler);
    tv49.setOnClickListener(myHandler);
    tv50.setOnClickListener(myHandler);
    tv51.setOnClickListener(myHandler);
    tv52.setOnClickListener(myHandler);
    tv53.setOnClickListener(myHandler);
    tv54.setOnClickListener(myHandler);
    tv55.setOnClickListener(myHandler);
}

View.OnClickListener myHandler = new View.OnClickListener() {

        public void onClick(View v) {

            switch (v.getId()) {
            case R.id.tv1:
                strike(tv1);
                break;
            case R.id.tv2:
                strike(tv2);
                break;
            case R.id.tv3:
                strike(tv3);
                break;
            case R.id.tv4:
                strike(tv4);
                break;
            case R.id.tv5:
                strike(tv5);
                break;
            case R.id.tv6:
                strike(tv6);
                break;
            case R.id.tv7:
                strike(tv7);
                break;
            case R.id.tv8:
                strike(tv8);
                break;
            case R.id.tv9:
                strike(tv9);
                break;
            case R.id.tv10:
                strike(tv10);
                break;
            case R.id.tv11:
                strike(tv11);
                break;
            case R.id.tv12:
                strike(tv12);
                break;
            case R.id.tv13:
                strike(tv13);
                break;
            case R.id.tv14:
                strike(tv14);
                break;
            case R.id.tv15:
                strike(tv15);
                break;
            case R.id.tv16:
                strike(tv16);
                break;
            case R.id.tv17:
                strike(tv17);
                break;
            case R.id.tv18:
                strike(tv18);
                break;
            case R.id.tv19:
                strike(tv19);
                break;
            case R.id.tv20:
                strike(tv20);
                break;
            case R.id.tv21:
                strike(tv21);
                break;
            case R.id.tv22:
                strike(tv22);
                break;
            case R.id.tv23:
                strike(tv23);
                break;
            case R.id.tv24:
                strike(tv24);
                break;
            case R.id.tv25:
                strike(tv25);
                break;
            case R.id.tv26:
                strike(tv26);
                break;
            case R.id.tv27:
                strike(tv27);
                break;
            case R.id.tv28:
                strike(tv28);
                break;
            case R.id.tv29:
                strike(tv29);
                break;
            case R.id.tv30:
                strike(tv30);
                break;
            case R.id.tv31:
                strike(tv31);
                break;
            case R.id.tv32:
                strike(tv32);
                break;
            case R.id.tv33:
                strike(tv33);
                break;
            case R.id.tv34:
                strike(tv34);
                break;
            case R.id.tv35:
                strike(tv35);
                break;
            case R.id.tv36:
                strike(tv36);
                break;
            case R.id.tv37:
                strike(tv37);
                break;
            case R.id.tv38:
                strike(tv38);
                break;
            case R.id.tv39:
                strike(tv39);
                break;
            case R.id.tv40:
                strike(tv40);
                break;
            case R.id.tv41:
                strike(tv41);
                break;
            case R.id.tv42:
                strike(tv42);
                break;
            case R.id.tv43:
                strike(tv43);
                break;
            case R.id.tv44:
                strike(tv44);
                break;
            case R.id.tv45:
                strike(tv45);
                break;
            case R.id.tv46:
                strike(tv46);
                break;
            case R.id.tv47:
                strike(tv47);
                break;
            case R.id.tv48:
                strike(tv48);
                break;
            case R.id.tv49:
                strike(tv49);
                break;
            case R.id.tv50:
                strike(tv50);
                break;
            case R.id.tv51:
                strike(tv51);
                break;
            case R.id.tv52:
                strike(tv52);
                break;
            case R.id.tv53:
                strike(tv53);
                break;
            case R.id.tv54:
                strike(tv54);
                break;
            case R.id.tv55:
                strike(tv55);
                break;
            default:
                break;
        }

        }    
        };

public String getPanelContents(int n) {
    String pContent = panelContents;
    for (int i = 0; i < (6 - n); ++i) {
        pContent = pContent + " --";
    }
    return pContent;
}
public void strike(TextView tv) {
    //Log.i("HEREHERE","" + (tv.getPaintFlags() & Paint.STRIKE_THRU_TEXT_FLAG));
    //Log.i("tv.getPaintFlags() = ", "" + tv.getPaintFlags());
    //Log.i("Paint.STRIKE_THRU_TEXT_FLAG=", "" + Paint.STRIKE_THRU_TEXT_FLAG);
    //////////////if (tv.getText() instanceof SpannedString) {
    if ((tv.getPaintFlags() & Paint.STRIKE_THRU_TEXT_FLAG) > 0) {
        Log.i("INSIDE IF","HERE");
        //tv.setPaintFlags(0);
        Log.i("NUMBER = ", "" + tv.getText());
        //tv.setPaintFlags( tv.getPaintFlags() & (~ Paint.STRIKE_THRU_TEXT_FLAG));
        tv.getPaint().setStrikeThruText(false);


        //tv.setText("[" + tv.getText().charAt(1) + tv.getText().charAt(2) + "]");
    }
    if ((!((tv.getPaintFlags() & Paint.STRIKE_THRU_TEXT_FLAG) > 0)) && totalNrOfStrikes < 36) {
        if (tviewId == 0) {
            tviewId = R.id.TextView_A;
            txtView_A.setTextColor(Color.RED);
        }
        else if (txtView_A.getCurrentTextColor() == Color.RED &&
                 txtView_B.getCurrentTextColor() == Color.BLACK && nrOfStrikes == 6) {
            nrOfStrikes = 0;
            panelContents = "";
            tviewId = R.id.TextView_B;
            txtView_A.setTextColor(Color.BLACK);
            txtView_B.setTextColor(Color.RED);
        }
        else if (txtView_A.getCurrentTextColor() == Color.BLACK &&
                 txtView_B.getCurrentTextColor() == Color.RED &&
                 txtView_C.getCurrentTextColor() == Color.BLACK && nrOfStrikes == 6) {
            nrOfStrikes = 0;
            panelContents = "";
            tviewId = R.id.TextView_C;
            txtView_B.setTextColor(Color.BLACK);
            txtView_C.setTextColor(Color.RED);
        }
        else if (txtView_A.getCurrentTextColor() == Color.BLACK &&
                 txtView_B.getCurrentTextColor() == Color.BLACK &&
                 txtView_C.getCurrentTextColor() == Color.RED &&
                 txtView_D.getCurrentTextColor() == Color.BLACK && nrOfStrikes == 6) {
            nrOfStrikes = 0;
            panelContents = "";
            tviewId = R.id.TextView_D;
            txtView_C.setTextColor(Color.BLACK);
            txtView_D.setTextColor(Color.RED);
        }
        else if (txtView_A.getCurrentTextColor() == Color.BLACK &&
                 txtView_B.getCurrentTextColor() == Color.BLACK &&
                 txtView_C.getCurrentTextColor() == Color.BLACK &&
                 txtView_D.getCurrentTextColor() == Color.RED &&
                 txtView_E.getCurrentTextColor() == Color.BLACK && nrOfStrikes == 6) {
            nrOfStrikes = 0;
            panelContents = "";
            tviewId = R.id.TextView_E;
            txtView_D.setTextColor(Color.BLACK);
            txtView_E.setTextColor(Color.RED);
        }
        else if (txtView_A.getCurrentTextColor() == Color.BLACK &&
                 txtView_B.getCurrentTextColor() == Color.BLACK &&
                 txtView_C.getCurrentTextColor() == Color.BLACK &&
                 txtView_D.getCurrentTextColor() == Color.BLACK &&
                 txtView_E.getCurrentTextColor() == Color.RED &&
                 txtView_F.getCurrentTextColor() == Color.BLACK && nrOfStrikes == 6) {
            nrOfStrikes = 0;
            panelContents = "";
            tviewId = R.id.TextView_F;
            txtView_E.setTextColor(Color.BLACK);
            txtView_F.setTextColor(Color.RED);
        }
        else if (nrOfStrikes == 5){
            txtView_F.setTextColor(Color.BLACK);
        }
        switch (tviewId) {
            case R.id.TextView_A:
                tview = txtView_A_v;
                break;
            case R.id.TextView_B:
                tview = txtView_B_v;
                break;
            case R.id.TextView_C:
                tview = txtView_C_v;
                break;
            case R.id.TextView_D:
                tview = txtView_D_v;
                break;
            case R.id.TextView_E:
                tview = txtView_E_v;
                break;
            case R.id.TextView_F:
                tview = txtView_F_v;
                break;
            default:
                break;
        }
        number = (String) tv.getText();
        number = number.substring(1,3);
        //Log.i("Length of number=",""+number.length());
        nrOfStrikes++;
        totalNrOfStrikes++;
        panelContents = panelContents + " " + number;
        tview.setText(getPanelContents(nrOfStrikes));

    ////SpannableString content = new SpannableString(tv.getText());
    ////content.setSpan(new StrikethroughSpan(), 1, 1, 0);
    ////tv.setText(content);

        tv.setPaintFlags( tv.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);    
    }
}

一种方法是删除文本视图,然后用相同的文本重新创建文本视图,但我相信没有删改。谢谢大家的帮助。问题是我有两个连续的简单if语句,但它们必须是 如果 否则,如果。。。。 否则


这确实很有趣,但现在它起作用了

谢谢@JRowan,但我看到了这一点,它对我来说根本不起作用。我试着一个字符一个字符地恢复文本,但我仍然能完全恢复;你试过了吗,对不起,我从来没有试过,只是想帮你一把是的,我也试过。它不起作用。我一定是错过了什么,不知道是什么>@JRowan,我真的很感谢你的帮助,但我觉得很沮丧,因为这对我不起作用。有人知道为什么吗?谢谢你的帮助,但是罢工并没有消失。我从布局文件中添加了TextView小部件的定义。我有很多这样的TextView,tv被分配了tv1、tv2、tv3等中的一个。。。然后我调用一个方法striketv。在这个方法中,我检查电视是否被删除。如果是,那么我想删除删除删除线。如果它不是,那么我就敲打它,这样就行了,我还做了一些其他的事情。方法strike是在文本视图的onClick方法中调用的。我认为您的代码中有一些有趣的地方,因为其他人已经能够使用建议的代码撤消删除。你能多发一些代码吗?代码很长,但我会尽量发的。