1
私は管理ページをやっています。管理者は、テーブルの各行のデータを編集できる必要があります。しかし、編集をクリックすると、新しいアクティビティに移動することはできません。何が間違っているのか分かりません。以下は私のテーブルイメージです。以下は、各タブローでTextviewをクリックできるようにする
私のJavaのコーディングで、私はいくつかの重要ではないコーディング短くカットしている:以下
public class assessment_table_edit extends AppCompatActivity implements View.OnClickListener{
String data = "";
TableLayout tlAssessment;
TableRow tr;
TextView stuID,totalmarks,marks,edit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_assessment_table_edit);
tlAssessment=(TableLayout)findViewById(R.id.tlAssessment_Edit);
edit=(TextView)findViewById(R.id.assessment_edit);
final Assessment_Information_GetData getdb=new Assessment_Information_GetData();
new Thread(new Runnable() {
@Override
public void run() {
data =getdb.getDataFromDB();
System.out.println(data);
runOnUiThread(new Runnable() {
@Override
public void run() {
ArrayList<Assessment_Information> users=parseJSON(data);
addData(users);
}
});
}
}).start();
if(getSupportActionBar()!=null){
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.assessment_edit:
Intent iChange=new Intent(assessment_table_edit.this,edit_details.class);
startActivity(iChangePassword);
break;
}
}
@SuppressWarnings("deprecation")
void addHeader(){
edit=new TextView(this);
edit.setText("Modify");
edit.setGravity(Gravity.CENTER);
edit.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT));
edit.setPadding(2,2,2,2);
edit.setTextColor(Color.parseColor("#FFFFFF"));
edit.setBackgroundColor(Color.parseColor("#607D8B"));
Ll=new LinearLayout(this);
params = new LinearLayout.LayoutParams(TableRow.LayoutParams.FILL_PARENT,
TableRow.LayoutParams.WRAP_CONTENT);
params.setMargins(2,2,2,2);
Ll.addView(edit,params);
tr.addView((View)Ll);
tlAssessment.addView(tr,
new TableLayout.LayoutParams(TableRow.LayoutParams.FILL_PARENT, TableRow.LayoutParams.WRAP_CONTENT));
}
@SuppressWarnings({ "rawtypes", "deprecation" })
public void addData(ArrayList<Assessment_Information>users){
addHeader();
for (Iterator i = users.iterator(); i.hasNext();) {
Assessment_Information p=(Assessment_Information)i.next();
tr=new TableRow(this);
//Edit here
edit=new TextView(this);
edit.setText("Edit");
edit.setOnClickListener(this);
edit.setGravity(Gravity.CENTER);
edit.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT));
edit.setPadding(2, 2, 2, 2);
edit.setTextColor(Color.parseColor("#3F51B5"));
edit.setBackgroundColor(Color.parseColor("#90CAF9"));
Ll = new LinearLayout(this);
params = new LinearLayout.LayoutParams(TableRow.LayoutParams.FILL_PARENT,
TableRow.LayoutParams.WRAP_CONTENT);
params.setMargins(2, 2, 2, 2);
Ll.addView(edit,params);
tr.addView((View) Ll);
tlAssessment.addView(tr,
new TableLayout.LayoutParams(TableRow.LayoutParams.FILL_PARENT, TableRow.LayoutParams.WRAP_CONTENT));
}
}
は私のxmlコーディングです:誰かが私を啓発することができる場合
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true" >
<TableLayout
android:id="@+id/tlAssessment_Edit"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:stretchColumns="*" >
</TableLayout>
</ScrollView>
<TextView
android:id="@+id/assessment_edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone" />
は感謝しています。
私は試しましたが、まだクリックできませんでした。 – Lawrence
私は答えを編集しました... – rafsanahmad007
これはエラーを表示します:原因:java.lang.NullPointerException:nullオブジェクトリファレンスで仮想メソッド 'void android.widget.TextView.setId(int)'を呼び出そうとしました – Lawrence