[英]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.