Skip to content Skip to sidebar Skip to footer

Android How Set A Clicked Textview With The Input Data

i have a Table of TextView (60 TextView), the user can touch them and set the text and the background of the clicked TextView. When one TextView is clicked this event open a Dialog

Solution 1:

Actually you have to either maintain TextView's ID from addMateria(View v) or use direct TextView.

There are many ways to keep it like, class level variables etc.,

Like, declare TextView as a Class level member field.

publicclassActivitySetOrarioextendsActionBarActivity {

  //Static perch� cosi non perdo i dati inseriti in precedenza!staticDataBaseDB=newDataBase();
  int clickedTextViewId; // Declare TextViewId as class level member field@OverrideprotectedvoidonCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_set_orario);

 }/

Now, get reference of clicked Textview to mTextView in addMateria(View v)

publicvoidaddMateria(View v){
        //To get ID of your TextView do thisif(v instanceOf TextView) 
       {
        clickedTextViewId = v.getId();
       }
        //StartActivityForResult perche mi aspetto la materia inserita dall'altra activity
        Intent myIntent = newIntent(ActivitySetOrario.this, ActivityAddMateria.class);
        ActivitySetOrario.this.startActivityForResult(myIntent, 1);
    }

Again access mTextView in onActivityResult(), to update color and Text

//Prende indietro la materia aggiunta dall'ActivityAddMateriaprotectedvoidonActivityResult(int requestCode, int resultCode, Intent data) {
            if(resultCode == RESULT_OK){

                Stringresult= data.getStringExtra("result"); //Take the materia from Dialogintcolor= data.getIntExtra("color",1); //Take the color from Dialog

                Materia materia;
                materia = newMateria();
                materia.setMateria(result); //put the name materia into class materia
                materia.setColor(color); //put the color materia into class materia
                DB.getMaterie().add(materia);
               // Now use mTextView  heretry
             {
               Viewview= findViewById(clickedTextViewId);
                  if(view instanceOf TextView)
                 {
                   TextViewtextView= (TextView) view;
                   textView .setText(result);
                   textView .setBackgroundColor(color);
                 }
             }catch(Exception ex)
             {
                ex.printStacktrace();
             }
             } 
             if (resultCode == RESULT_CANCELED) {
                //Nessuna materia inserita
            }
    }//onActivity

Post a Comment for "Android How Set A Clicked Textview With The Input Data"