2015-02-09 8 views
0
public class AddActivity extends Activity implements OnClickListener{ 
String[] info = new String[11]; 

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

@Override 
public void onClick(View v) { 
    // TODO Auto-generated method stub 
    TextView keyString = (TextView)findViewById(R.id.keyString); 
    TextView site1 = (TextView)findViewById(R.id.site1); 
    TextView site2 = (TextView)findViewById(R.id.site2); 
    TextView site3 = (TextView)findViewById(R.id.site3); 
    ImageButton submit = (ImageButton)findViewById(R.id.submit); 
    ImageButton add1 = (ImageButton)findViewById(R.id.add1); 
    ImageButton add2 = (ImageButton)findViewById(R.id.add2); 
    ImageButton add3 = (ImageButton)findViewById(R.id.add3); 

    submit.setOnClickListener((OnClickListener) this); 
    add1.setOnClickListener((OnClickListener) this); 
    add2.setOnClickListener((OnClickListener) this); 
    add3.setOnClickListener((OnClickListener) this); 

    int id = v.getId(); 
    switch(id){ 
    case R.id.submit:{ 
     submitEntry(info); 
     break; 
    } 
    case R.id.add1:{ 
     add2.setVisibility(View.VISIBLE); 
     site2.setVisibility(View.VISIBLE); 
     break; 
    } 
    } 
} 
} 

Это код.Ошибка события движения на ImageButton click

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 

<TextView 
    android:id="@+id/textView2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/key_string" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<TextView 
    android:id="@+id/textView3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceSmall" 
    android:visibility="invisible" /> 

<EditText 
    android:id="@+id/keyString" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<TextView 
    android:id="@+id/textView4" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:visibility="invisible" /> 

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/site_string" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<TextView 
    android:id="@+id/textView6" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceSmall" 
    android:visibility="invisible" /> 

<ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" > 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" > 

      <ImageButton 
       android:id="@+id/add1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:src="@drawable/ic_action_new" /> 

      <EditText 
       android:id="@+id/site1" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:text="@string/url_hint" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 
     </LinearLayout> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:visibility="invisible" /> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" > 

      <ImageButton 
       android:id="@+id/add2" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:src="@drawable/ic_action_new" 
       android:visibility="invisible" /> 

      <EditText 
       android:id="@+id/site2" 
       android:layout_width="match_parent" 
       android:layout_height="fill_parent" 
       android:text="@string/url_hint" 
       android:textAppearance="?android:attr/textAppearanceLarge" 
       android:visibility="invisible" /> 
     </LinearLayout> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:visibility="invisible" /> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" > 

      <ImageButton 
       android:id="@+id/add3" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:src="@drawable/ic_action_new" 
       android:visibility="invisible" /> 

      <EditText 
       android:id="@+id/site3" 
       android:layout_width="match_parent" 
       android:layout_height="fill_parent" 
       android:text="@string/url_hint" 
       android:visibility="invisible" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 
     </LinearLayout> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:visibility="invisible" /> 
     <Button 
      android:id="@+id/submit" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:text="@string/submit_buttom" /> 
    </LinearLayout> 
</ScrollView> 
</LinearLayout> 

И это XML. Add1, add2, add3 и submit ImageButtons находятся в ScrollView.

Когда я нажимаю кнопку Add1 ImageButton, я хочу, чтобы кнопки add2 и site2 ImageButtons стали видимыми, но вместо этого он выдает следующую ошибку.

Событие движения имеет недопустимый указатель 0; значение должно быть между 1 и 16.

Что я делаю неправильно?

PS: Все вызовы findViewById() находятся в методе onClick(), потому что NullPointerExeption вызывается, если я их вызываю в onCreate().

ответ

0

Эти findViewById звонки в onClick не имеют смысла. Не знаете, почему вы получаете исключение нулевого указателя, вызывающее их в onCreate. onClick никогда не вызывается в этом случае, потому что ничего при создании Activity не назначает кнопки для просмотра вашего метода onClick; кнопки по умолчанию не будут иметь назначенного прослушивателя. Также не рекомендуется использовать Activity как onClickListener.

Ваш код должен выглядеть следующим образом:

public class AddActivity extends Activity { 
// https://source.android.com/source/code-style.html 
// info -> mInfo; non-public, non-static field! 
String[] mInfo = new String[11]; 

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

    TextView keyString = (TextView)findViewById(R.id.keyString); 
    TextView site1 = (TextView)findViewById(R.id.site1); 
    TextView site2 = (TextView)findViewById(R.id.site2); 
    TextView site3 = (TextView)findViewById(R.id.site3); 
    Button submit = (Button)findViewById(R.id.submit); 
    ImageButton add1 = (ImageButton)findViewById(R.id.add1); 
    ImageButton add2 = (ImageButton)findViewById(R.id.add2); 
    ImageButton add3 = (ImageButton)findViewById(R.id.add3); 

    add1.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
     add2.setVisibility(View.VISIBLE); 
     site2.setVisibility(View.VISIBLE); 
     } 
    }); 

    submit.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
     submitEntry(mInfo); 
     } 
    }); 
} 
+0

Спасибо так много! Кроме того, я думаю, что я получил ошибку при объявлении всего этого в onCreate(), потому что в XML, submit является Button, тогда как я объявил его как ImageButton в классе AddActivity. Просто хедз-ап для других! –

0

Вызовы findViewById() и особенно вызовы setOnClickListener() должны быть внутри функции onCreate(). С setOnClickListener() внутри onClick() я сомневаюсь, что onClick когда-либо назывался.

Нам понадобится больше журналов, чтобы найти точную проблему.

 Смежные вопросы

  • Нет связанных вопросов^_^