2017-11-26 7 views
1

私は管理ページをやっています。管理者は、テーブルの各行のデータを編集できる必要があります。しかし、編集をクリックすると、新しいアクティビティに移動することはできません。何が間違っているのか分かりません。以下は私のテーブルイメージです。以下は、enter image description here各タブローで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" /> 

は感謝しています。

答えて

0

あなたは動的textviewを生成しているとして:

<item name="my_custom_id" type="id" /> 

今:

まず今、自分の価値観/のstrings.xmlにカスタムIDを定義し、あなたの別のOnClickListener方法

OnClickListener onclicklistener = new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     switch (v.getId()){ 
      case R.id.my_custom_id: 
       Intent iChange=new Intent(assessment_table_edit.this,edit_details.class); 
       startActivity(iChange); 
       break; 
     } 
    } 
}; 

を作成あなたのIDとリスナを動的にテキストビューに設定します:

edit.setId(R.id.my_custom_id); 
edit.setOnClickListener(onclicklistener); 
+0

私は試しましたが、まだクリックできませんでした。 – Lawrence

+0

私は答えを編集しました... – rafsanahmad007

+0

これはエラーを表示します:原因:java.lang.NullPointerException:nullオブジェクトリファレンスで仮想メソッド 'void android.widget.TextView.setId(int)'を呼び出そうとしました – Lawrence

関連する問題