Note that there are some explanatory texts on larger screens.

plurals
  1. POCannot set OnTouchListener
    primarykey
    data
    text
    <p>Falks, it is going to be silly mistake but I really cannot guess where is it. I`m trying to set OnTouchListener but method onTouch is not invoked.</p> <p>Here`s my code:</p> <pre><code> public class StepActivity extends SherlockActivity { private Recipe recipe = null; private String TAG = "StepActivity"; private ArrayList&lt;Step&gt; steps; private int caret = 0; private int currentStep = 1; private int stepQuantity; private TextView viewStepBody; private TextView stepNumber; private ImageView viewPicture; private String bodyText; private String picture; private String [] pictures = new String [5]; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.step_page); RelativeLayout view = new RelativeLayout(this); view.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motion) { Log.i(TAG, "In onTouch"); float downXValue = 0; // Get the action that was done on this touch event switch (motion.getAction()) { case MotionEvent.ACTION_DOWN: { Log.i(TAG, "In onTouch1"); // store the X value when the user's finger was pressed down downXValue = motion.getX(); break; } case MotionEvent.ACTION_UP: { Log.i(TAG, "In onTouch2"); // Get the X value when the user released his/her finger float currentX = motion.getX(); // going backwards: pushing stuff to the right if (downXValue &lt; currentX) { Log.i(TAG, "In onTouch previous"); goPrevious(); } // going forwards: pushing stuff to the left if (downXValue &gt; currentX) { Log.i(TAG, "In onTouch next"); goNext(); } break; } } // if you return false, these actions will not be recorded return true; } }); viewStepBody = (TextView)findViewById(R.id.step_body); stepNumber = (TextView)findViewById(R.id.step_number); viewPicture = (ImageView)findViewById(R.id.picture); TextView recipeTitle = (TextView)findViewById(R.id.recipe_title); try { getSupportActionBar().setDisplayShowTitleEnabled(false); recipe = (Recipe)getIntent().getSerializableExtra("Recipe1"); steps = recipe.getSteps(); stepQuantity = steps.size(); Log.d(TAG,"steps: " + steps.size()); if (stepQuantity &gt; 0) { Step step = steps.get(0); pictures[0] = Constants.URL + step.getImg_url(); bodyText = step.getInstruction(); new DownloadImageTask().execute(pictures); recipeTitle.setText(recipe.getTitle()); } updateInfo(); } catch (Exception e) { Toast.makeText(this, "Error occured" + e.getMessage(), 200); } } @Override public boolean onCreateOptionsMenu(Menu menu) { com.actionbarsherlock.view.MenuInflater inflater = getSupportMenuInflater(); inflater.inflate(R.menu.step_menu, (com.actionbarsherlock.view.Menu) menu); return super.onCreateOptionsMenu(menu); } private void updateInfo() { new DownloadImageTask().execute(pictures); viewStepBody.setText(bodyText); stepNumber.setText(currentStep + "/" + stepQuantity); } private void goNext() { if (currentStep != stepQuantity) { caret++; currentStep++; Step newStep = steps.get(caret); pictures[0] = Constants.URL + newStep.getImg_url(); bodyText = newStep.getInstruction(); updateInfo(); } else { caret = 0; currentStep = 1; Step newStep = steps.get(caret); bodyText = newStep.getInstruction(); pictures[0] = Constants.URL + newStep.getImg_url(); updateInfo(); } } private void goPrevious() { if (currentStep != 1) { caret--; currentStep--; Step newStep = steps.get(caret); bodyText = newStep.getInstruction(); pictures[0] = Constants.URL + newStep.getImg_url(); updateInfo(); } else { caret = stepQuantity - 1; currentStep = stepQuantity; Step newStep = steps.get(caret); bodyText = newStep.getInstruction(); pictures[0] = Constants.URL + newStep.getImg_url(); updateInfo(); } } @Override public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()) { case R.id.next: goNext(); return true; case R.id.previous: goPrevious(); return true; default: return super.onOptionsItemSelected(item); } } </code></pre> <p>Here`s my step_page.xml which passed to the setContentView() method.</p> <pre><code> &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/step_layout1"&gt; &lt;ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent"&gt; &lt;RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" &gt; &lt;TextView android:id="@+id/recipe_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="23dp" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:textColor="#9d9d9d" android:textStyle="bold" android:layout_marginTop="4dp"/&gt; &lt;TextView android:id="@+id/step_word" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="25dp" android:layout_below="@+id/recipe_title" android:textColor="#000000" android:textStyle="bold" android:text="@string/step_word" android:layout_marginTop="4dp"/&gt; &lt;TextView android:id="@+id/step_number" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="25dp" android:layout_toRightOf="@+id/step_word" android:layout_below="@+id/recipe_title" android:textColor="#000000" android:textStyle="bold" android:layout_marginLeft="3dp" android:text="1/12" android:layout_marginTop="4dp"/&gt; &lt;ImageView android:id="@+id/picture" android:layout_width="300dp" android:layout_height="200dp" android:layout_below="@+id/step_word" android:layout_centerHorizontal="true" /&gt; &lt;TextView android:id="@+id/step_body" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="22dp" android:textColor="#000000" android:paddingTop="2dp" android:layout_below="@+id/picture" /&gt; &lt;/RelativeLayout&gt; &lt;/ScrollView&gt; &lt;/RelativeLayout&gt; </code></pre> <p>One more approach which was advised here doesn`t work. :</p> <pre><code>public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.step_page); RelativeLayout view = (RelativeLayout) findViewById(R.id.step_layout1); view.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motion) { Log.i(TAG, "In onTouch"); float downXValue = 0; // Get the action that was done on this touch event switch (motion.getAction()) { case MotionEvent.ACTION_DOWN: { Log.i(TAG, "In onTouch1"); // store the X value when the user's finger was pressed down downXValue = motion.getX(); break; } case MotionEvent.ACTION_UP: { Log.i(TAG, "In onTouch2"); // Get the X value when the user released his/her finger float currentX = motion.getX(); // going backwards: pushing stuff to the right if (downXValue &lt; currentX) { Log.i(TAG, "In onTouch previous"); goPrevious(); } // going forwards: pushing stuff to the left if (downXValue &gt; currentX) { Log.i(TAG, "In onTouch next"); goNext(); } break; } } // if you return false, these actions will not be recorded return true; } }); </code></pre> <p>Any remarks?</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload