繁体   English   中英

Android如何在TableView内设置TextView内容

[英]Android how can I set a TextView content inside a TableView

我有一个带有一些TextView的表。 我单击其中之一进行startActivityForResult并接受输入数据,然后将其放入按下的TextView 问题是我在此Layout中有60个TextView 如何设置点击的TextView的结果,我采取与onActivityResult

XML:

<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" />

ActivitySetOrario.java

public class ActivitySetOrario extends ActionBarActivity {

TextView textView;
//Static perche cosi non perdo i dati inseriti in precedenza!
static Data DB = new DataBase();

@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);
   //******HERE I NEED TO TAKE THE ID OF THE CLICKER AND SET TEXT WITH RESULT AND BACKGROUND FROM 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:

        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){
    //StartActivityForResult perche mi aspetto la materia inserita dall'altra activity
    Intent myIntent = new Intent(ActivitySetOrario.this, ActivityAddMateria.class);
    ActivitySetOrario.this.startActivityForResult(myIntent, 1);
}

}

问题是您的addMateria方法未正确声明,因此Android无法链接onClick操作。

尝试改变

public void addMateria(){
    //StartActivityForResult perche mi aspetto la materia inserita dall'altra activity
    Intent myIntent = new Intent(ActivitySetOrario.this,ActivityAddMateria.class);
    ActivitySetOrario.this.startActivityForResult(myIntent, 1);
}

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

您的代码无法在点击视图上解析addmateria类。 http://chrisrisner.com/Android的31天-Day-5%E2%80%93Adding-Multiple-Activities-and-using-Intents这将帮助您。 找到一个方法addMateria()(View),或者如果没有,则在调用的意图中声明它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM