Android的设置如何与输入数据的TextView的点击 [英] Android how set a clicked TextView with the input data

查看:151
本文介绍了Android的设置如何与输入数据的TextView的点击的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有的TextView (60的TextView)的表,用户可触摸它们,设置文本和点击的TextView <背景/ code>。
当一个的TextView 点击该事件打开 DialogActivity startActivityForResult 并夺回两个变量(字符串和颜色)。
我的问题是如何设置文本和点击的TextView与由的onActivityResult

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 DialogActivity with startActivityForResult and take back two variables (string and color). My problem is how set the text and the background of the clicked TextView with the input variables that are returned by onActivityResult?

有些code有
活动

Some code there Activity

package com.ddz.diarioscolastico;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

public class ActivitySetOrario extends ActionBarActivity {

//Static perch� cosi non perdo i dati inseriti in precedenza!
static DataBase DB = new DataBase();
static int clickedTextViewId; // Declare TextView as class level member field


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

}//Fine oncreate

//Prende indietro la materia aggiunta dall'ActivityAddMateria
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(requestCode == 1) {
        if (resultCode == RESULT_OK) {

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

            Materia materia;
            materia = new Materia();
            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  here
            //View view = findViewById(clickedTextViewId);
            TextView clickedtextView = (TextView) findViewById(clickedTextViewId); //(TextView) view;
            if(clickedTextViewId == clickedtextView.getId()) {
                clickedtextView.setText(result);
                clickedtextView.setBackgroundColor(color);
            }
        }

        if (resultCode == RESULT_CANCELED) {
            //Nessuna materia inserita
        }
    }
}//onActivityResult

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_set_orario, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.

    switch (item.getItemId()) {
    case R.id.draw_orario:
        //addMateria();
        return true;
    case R.id.save_data_orario:
        //SERIALIZZO I DATI CHE DOVRA PRENDERE ActivityOrario
        //FileOutputStream fos = context.openFileOutput(fileName, Context.MODE_PRIVATE);
        //ObjectOutputStream os = new ObjectOutputStream(fos);
        //os.writeObject(this);
        //os.close();
        //fos.close();
        backToOrario();
        return true;     
    case R.id.exit_orario:
        //Torno alla schermata orario annullo ogni modifica NON SERIALIZZO
        backToOrario();
        finish();
        return true;     
    case R.id.action_settings:
        return true;
    default:
        return super.onOptionsItemSelected(item);
    }
}

//Torna alla ActivityOrario
public void backToOrario(){
    Intent myIntent = new Intent(ActivitySetOrario.this, ActivityOrario.class);
    startActivity(myIntent);
}

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

activity_set_orario.xml:

activity_set_orario.xml:

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/blue_orario"
android:id="@+id/table">

<TableRow
    android:id="@+id/dayrow"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingLeft="35dp" >


    <TextView
        android:id="@+id/d1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Lun."
        android:textColor="@color/text_orario"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:id="@+id/d2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Mar."
        android:textColor="@color/text_orario"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:id="@+id/d3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Mer."
        android:textColor="@color/text_orario"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:id="@+id/d4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Gio."
        android:textColor="@color/text_orario"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:id="@+id/d5"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Ven."
        android:textColor="@color/text_orario"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:id="@+id/d6"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Sab."
        android:textColor="@color/text_orario"
        android:textAppearance="?android:attr/textAppearanceLarge" />

</TableRow>
<ScrollView
  android:id="@+id/scrollorario"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content" >
 <LinearLayout
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical" >
            <TableRow
                android:id="@+id/prima_riga"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" >

                <TextView
                    android:id="@+id/h1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="1"
                    android:textColor="@color/text_orario"
                    android:textAppearance="?       android:attr/textAppearanceLarge" />

                <TextView
                    android:id="@+id/mat11"
                    android:layout_width="50dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="20dp"
                    android:gravity="center"
                    android:clickable="true"
                    android:onClick="addMateria"
                    android:background="@color/grigio_chiaro" />
                <TextView
                    android:id="@+id/mat12"
                    android:layout_width="50dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="33dp"
                    android:gravity="center"
                    android:background="@color/grigio_chiaro"
                    android:text="" />
                <TextView
                    android:id="@+id/mat13"
                      android:layout_width="50dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="33dp"
                    android:gravity="center"
                    android:background="@color/grigio_chiaro"
                    android:text="" />
                <TextView
                    android:id="@+id/mat14"
                      android:layout_width="50dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="33dp"
                    android:gravity="center"
                    android:background="@color/grigio_chiaro"
                    android:text="" />
                <TextView
                    android:id="@+id/mat15"
                      android:layout_width="50dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="33dp"
                    android:gravity="center"
                    android:background="@color/grigio_chiaro"
                    android:text="" />
                <TextView
                    android:id="@+id/mat16"
                      android:layout_width="50dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="33dp"
                    android:gravity="center"
                    android:background="@color/grigio_chiaro"
                    android:text="" />

            </TableRow>

            <TableRow
                android:id="@+id/seconda_riga"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" >

                <TextView
                    android:id="@+id/h2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="2"
                    android:textColor="@color/text_orario"
                    android:textAppearance="?android:attr/textAppearanceLarge" />
                <TextView
                    android:id="@+id/mat21"
                   android:layout_width="50dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="20dp"
                    android:gravity="center"
                    android:background="@color/grigio_chiaro"
                    android:text="" />
                <TextView
                    android:id="@+id/mat22"
                    android:layout_width="50dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="33dp"
                    android:gravity="center"
                    android:background="@color/grigio_chiaro"
                    android:text="" />
                <TextView
                    android:id="@+id/mat23"
                      android:layout_width="50dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="33dp"
                    android:gravity="center"
                    android:background="@color/grigio_chiaro"
                    android:text="" />
                <TextView
                    android:id="@+id/mat24"
                      android:layout_width="50dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="33dp"
                    android:gravity="center"
                    android:background="@color/grigio_chiaro"
                    android:text="" />
                <TextView
                    android:id="@+id/mat25"
                      android:layout_width="50dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="33dp"
                    android:gravity="center"
                    android:background="@color/grigio_chiaro"
                    android:text="" />
                <TextView
                    android:id="@+id/mat26"
                      android:layout_width="50dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="33dp"
                    android:gravity="center"
                    android:background="@color/grigio_chiaro"
                    android:text="" />

            </TableRow>

            <TableRow
                android:id="@+id/terza_riga"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" >

                <TextView
                    android:id="@+id/h3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="3"
                    android:textColor="@color/text_orario"
                    android:textAppearance="?android:attr/textAppearanceLarge" />

            </TableRow>

            <TableRow
                android:id="@+id/quarta_riga"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" >

                <TextView
                    android:id="@+id/h4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="4"
                    android:textColor="@color/text_orario"
                    android:textAppearance="?android:attr/textAppearanceLarge" />

            </TableRow>

            <TableRow
                android:id="@+id/quinta_riga"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" >

                <TextView
                    android:id="@+id/h5"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="5"
                    android:textColor="@color/text_orario"
                    android:textAppearance="?android:attr/textAppearanceLarge" />

            </TableRow>

            <TableRow
                android:id="@+id/sesta_riga"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" >

                <TextView
                    android:id="@+id/h6"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="6"
                    android:textColor="@color/text_orario"
                    android:textAppearance="?android:attr/textAppearanceLarge" />

            </TableRow>

            <TableRow
                android:id="@+id/settima_riga"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" >

                <TextView
                    android:id="@+id/h7"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="7"
                    android:textColor="@color/text_orario"
                    android:textAppearance="?android:attr/textAppearanceLarge" />

            </TableRow>

            <TableRow
                android:id="@+id/ottava_riga"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" >

                <TextView
                    android:id="@+id/h8"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="8"
                    android:textColor="@color/text_orario"
                    android:textAppearance="?android:attr/textAppearanceLarge" />

            </TableRow>

            <TableRow
                android:id="@+id/nona_riga"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" >

                <TextView
                    android:id="@+id/h9"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="9"
                    android:textColor="@color/text_orario"
                    android:textAppearance="?android:attr/textAppearanceLarge" />


            </TableRow>

            <TableRow
                android:id="@+id/decima_riga"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" >

                <TextView
                    android:id="@+id/h10"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="10"
                    android:textColor="@color/text_orario"
                    android:textAppearance="?android:attr/textAppearanceLarge" />


            </TableRow>
        </LinearLayout>

推荐答案

其实你必须要么维持从 addMateria(视图V)的TextView的ID 或直接使用的TextView

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.,

一样,声明的TextView 作为类级别成员字段。

Like, declare TextView as a Class level member field.

public class ActivitySetOrario extends ActionBarActivity {

  //Static perch� cosi non perdo i dati inseriti in precedenza!
  static DataBase DB = new DataBase();
  int clickedTextViewId; // Declare TextViewId as class level member field

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

 }/

现在,拿在 addMateria(视图V)点击的TextView到mTextView参考

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

再次访问 mTextView 的onActivityResult(),以更新颜色和文本

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

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

                Materia materia;
                materia = new Materia();
                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  here

              try
             {
               View view = findViewById(clickedTextViewId);
                  if(view instanceOf TextView)
                 {
                   TextView textView = (TextView) view;
                   textView .setText(result);
                   textView .setBackgroundColor(color);
                 }
             }catch(Exception ex)
             {
                ex.printStacktrace();
             }
             } 
             if (resultCode == RESULT_CANCELED) {
                //Nessuna materia inserita
            }
    }//onActivity

这篇关于Android的设置如何与输入数据的TextView的点击的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆